正则

2017-03-08  本文已影响0人  冰激凌_db91

1:先列出一些看不懂的:特殊字符。 \ ^$.+?()[]|所有列出的字符都有特殊含义。如果想使用这些符号在正则表达式里面,那就必须要转义用/.
2:数字 \d ==[0-9]..\D==[^0-9].匹配任意的非数字。
3:字母数字字符:\w匹配任何的拉丁数字和下划线[a-zA-Z0-9]\w:和前面匹配的相反。
4:\s匹配空白字符(空格,制表符,换行符,回车符,翻页符合所有的Unicode)\S匹配所有的非空白字符。
5:$匹配输入字符串结束的位置。
6:^匹配输入字符串开始的位置。
7:
匹配前面的东西出现零次或多次。=={0,}
8:+匹配前面出现最少一次。=={1,}
9:?匹配前面出现了一次或零次=={0,1}
10:{n}n是正整数,匹配确定的n次。
11:{n,m}最少匹配n次,最多m次
12:{n,}匹配最少n次。
13:?当该字符紧跟在其他任何一个限制字符的后面,匹配的是非贪婪的,他会尽可能少的匹配搜索到的字符串。而默认的贪婪模式则会尽可能多的匹配所搜索到的字符。
14:. 匹配除\n以外的任何单字符。要匹配出包括包括\n在内的字符,请使用[.\n]的形式。
15:x|y匹配x或y。z|food (z|f)ood.
16:[xyz]字符合集,匹配所包含的任何一个字符。
17:[^xyz];
18: \b匹配一个单词边界。也就是指单词和空格键的位置。er\b 匹配never 不匹配verb.
19: \B匹配非单词边界。
20:如果想要动态的拼装正则表达式,那就要使用构造函数。
21:正则表达式函数的实例属性如下:
1:标识:g/全局 i/忽略大小写 m/多行匹配 。
2: .test()方法:查找是否匹配。参数是要匹配的字符串。
3:.search():发挥发现匹配的位置索引。他的参数是正则表达式
4:.exec()捕获分组。首先要看的是他的形式。var reg=/aa/;reg.exec(str);
这个函数通过提供的字符串进行一次匹配检测,获取字符串的第一个与正则表达式的内容,并将匹配的内容与子匹配的结果返回存放在数组中。
.match()捕获分组或返回所有匹配的子字符串。 var reg=/an/ str.match(reg);
5:先说一个概念:正则的子组表达式。子组通过圆括号分割界定,并且可以嵌套。主要有两个作用:将可选分支局部化。将子组设为捕获子组。当整个模式匹配后。目标字符串中的部分将会通过exex()的ovector参数回传给调用者。如果字符串 ”the red king” 使用模式((red|white) (king|queen)) 进行匹配, 模式匹配到的结果是 array(“red king”, ”red king”, “red”, “king”) 的形式, 其中第 0 个元素是整个模式匹配的结果,后面的三个元素依次为三个子组匹配的结果。 它们的下表分别为 1, 2, 3。如果字符串 ”the white queen” 匹配模式 ((?:red|white) (king|queen)),匹配到的结果会是 array(“white queen”、“white queen”、“white queen”),的和 king|queen 这两个子组。
6:对比:1、当正则表达式无子表达式,并且定义为非全局匹配时,exec和match执行的结果是一样,均返回第一个匹配的字符串内容
2.当正则表达式无子表达式,并且定义为全局匹配时,exec和match执行,做存在多处匹配内容,则match返回的是多个元素数组
3.还有其他的不了解了。
7:.replace(search,repace)找到seearch,(正则表达式;注意用g符号不然只会匹配一次正则表达式)替换为replace.1:当他为字符串的时候,会替换为字符串,唯一例外的就是字符美元符号。他会启动所谓的替换指令。2:当这个参数为函数的时候,他会对匹配到的字符串进行处理,该函数具有以下签名。
8:关于g的一些注意事项:当表达式设置了g,那么有些方法必须多次调用才能返回所有结果,这时可能会有问题。test(),exec().方法。
9:空的正则可以匹配一切。/.^/则是什么都不匹配。
10:.匹配除了行结束符以外的一切字符。使用[\s\S]可以匹配一切字符。
一些常见的正则表达式:
1:匹配汉字:[\u4e00-\u9fa5]
2:[\w!#$%&'+/=?^_{|}~-]+(?:\.[\w!#$%&'*+/=?^_{|}~-]+)@(?:\w?.)+\w? email \w[-\w.+]@([A-Za-z0-9][-A-Za-z0-9]+.)+[A-Za-z]{2,14}email
/^a-z
@([a-z0-9][-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?$/I email "^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)$
3:用户名:^[a-zA-Z]\w{5,15}$
4:电话:"^(\d{3,4}-)\d{7,8}$
5:手机:^1[3|4|5|7|8][0-9]\d{8}$
6:身份证:\d{14}[[0-9],0-9xX]
7:^[0-9]*$只能数字

上一篇下一篇

猜你喜欢

热点阅读