正则的作用
2.正则的捕获
- 把匹配内容找出来,exec方法
|
|
正则的组成
- 1.元字符,写在//中间的全是元字符
- 2.修饰符 写在//后面
- g(全局匹配),i(忽略大小写),m(换行匹配)
注意:一个元字符只能匹配一个字符
- g(全局匹配),i(忽略大小写),m(换行匹配)
1-1.特殊意义的元字符
1). \ 转义字符,一般都是把具有特殊意义的字符变成仅仅是本身意思的字符
12345var str='I\'m a person';var reg=/./;reg.test(str);//truevar reg=/\./;reg.test("1.1");//true2). ^ 以什么什么开始
123var reg=/^1/;reg.test("123445464");//truereg.test("0001");//false3). $ 以什么什么结尾
123var reg=/m$/;reg.test("mq");//falsereg.test("qm");//true
应用
12var reg=/^6$/;//只匹配"6"var reg=/^\d$/;//只匹配一个0-9中的任意一位数的字符串4). \d 匹配0-9中任意一个字符
5). \D 除了\d以外任意一个字符
6). \w 匹配0-9,a-z,A-Z,_这63个中的任意一个
7). \W 匹配除了\w以外的任意一个
8). \n 匹配一个换行符
|
|
9). \s 匹配一个空白符(空格 制表符 换页符)
10). \S 匹配除了\s以外的任意一个字符
11). \b 匹配一个边界
12). \B 匹配一个非边界
13). . 除了\n以外的任意一个字符
|
|
|
|
|
|
- 1-2. 量词元字符(量词元字符一定要写在元字符的后面)
- 1) * 前面的元字符出现0到多次
- 2) + 前面的元字符出现1到多次
- 3) ? 前面的元字符出现0次或者1次
- 4) {number} 前面的元字符出现number次
- 5) {number,} 前面的元字符出现number到多次
6) {number,m} 前面的元字符出现number到m次
123456789101112var reg=/\d*/;reg.test("");//truereg.test("1");//truereg.test("111");//truereg.test("wwww...");//truevar reg=/^\w{4}1+$/;//length>=5reg.test("111111");//truereg.test("abcd2");//falsereg.test("121221");//falsevar reg=/^1\d{10}$/;1-3.中括号[]
- 1). x|y x或y中的一个
- 2). [xyz] xyz中的一个
- 3). [^xyz] 不是xyz中的任意一个
- 4). [a-z] a-z中的任意一个
在中括号中除了上面说的具有特殊意义的字符都只是代表本身的意思,但是转义字符\仍然是转义
1234var reg=/^[\d.]$/;//字符串的length=1reg.test("q");//falsereg.test("1.");//falsereg.test(".");//true在没有小括号的情况下,|最后运算
123456789var reg=/^10|20$/;//以10开头 或者 以20结尾reg.test("1000D");//truereg.test("00020");//truereg.test("10201020");//truevar reg=/^(10|20)$/;//"10" "20" 以10开头结尾 或者 以20开头结尾var reg=/^[1020]$/;//"1" "0" "2"var reg=/^[10-20]$/;//"1" "0-2" "0"var reg=/^[16-20]$/;//不对的举例
1.21-26的正则
1var reg=/^2[1-6]$/;2.18-75的正则
可以将18-75差分为:18-19,20-69 70-75
1var reg=/^(1[8-9]|[2-6]\d|7[0-5])$/;3.在正则中小括号表示分组
- 作用:
- 1)改变优先级 先计算括号里面的
- 2)表示一个小分组 例如:\number ,表示第number个分组匹配的内容12var reg=/^(\w)(\w{2})\2\1$/;reg.test("_dcdc_")