1.
字符集 * , 字符集? , 字符集 +
eg:abc*d 匹配 abcd abccd abccccd 等, * 代表前面字符可以不出现, 也可以出现一次或多次 (0 次, 1 次, 多次)
abc?d 匹配 abd abcd ? 代表前面字符最只出现一次或 0 次 (0 次, 1 次)
abc+d 匹配 abcd abccd abcccd 等 + 代表前面的字符至少出现一次 (1 次, 多次)
- 2.
- [0-9] 0,1,2,3,4,5,6,7,8,9
[a-z] 匹配小写英文字
- //strsubing
- // 0123456789012
- var str = 'adgfcbhjklada';
- // 从第三个开始到第 7 个结束 不包含 7
- var str1 = str.substring(3, 7);
- // 省略第二个参数表示从第三个开始直到结尾
- var str3 = str.substring(3)
- // 从低三个开始直到 str.length-3
- var str5 = str.substring(3, str.length - 3)
- // strsub
- // 从第三个开始 后面的七个元素
- var str2 = str.substr(3, 7)
- // 省略第二个参数表示从第三个开始直到结尾
- var str4 = str.substr(3)
- // 从低三个开始直到 str.length-3
- var str6 = str.substr(3, str.length - 3)
- console.log(str1, str2, str3, str4, str5, str6)
- // indexof indexOf('kw',[formi])
- // 012345678901234567890123456
- var Word = "you see see you,one day day";
- // 返回关键字所在的下标
- var index = Word.indexOf("see")
- console.log(index) //4
- // 返回 see 下一个位置的下标
- index = Word.indexOf("see", index + 1)
- console.log(index) //8
- // 找不到则返回 - 1
- index = Word.indexOf("hhh")
- console.log(index) //- 1
- // lastIndexOf
- index = Word.lastIndexOf("you")
- console.log(index) //12
- index = Word.lastIndexOf("see", index - 'see'.length)
- console.log(index) //24
- // search 找到第一个符合正则规范的位置 找不到返回 - 1
- var kw = "You see see you,one day day";
- index = kw.search(/you/ig)
- console.log(index)
- // match 使用正则获取关键词, 返回关键词的内容 如果没有则返回 null
- var arr = "You see see you,one day day";
- index = arr.match(/bo/ig);
- console.log(index) //null
- // RegExp
- // var reg = /no/ig; // 直接创建
- var arr1 = 'You see see you,one day day';
- var arr2 = ["see", "you"];
- // new 关键字创建
- var reg = new RegExp(arr2.join("|"), 'ig');
- console.log(arr1.match(reg))
- var reg1 = /you/ig;
- // test()
- var arr3 = reg1.test(arr1)
- console.log(arr3) // 返回 boolean 类型的值
- // exec()
- var arr4 = "you see see you,one day day";
- var reg2 = /([y|s|o|d])([o|e|a|n])([e|u|y])?/ig;
- console.log(reg2.exec(arr4));
- console.log(reg2.exec(arr4));
- console.log(reg2.exec(arr4));
- // console.log(reg2.exec(arr4));
- var arr5 = reg2.exec(arr4)
- console.log(arr5[0], arr5[2], arr5.index, reg2.lastIndex) //you o 12 15
母
[A-Z] 匹配大写英文字母
[0-9a-zA-Z] 匹配以上三种情况
[\u4e00-\u9fa5] 匹配汉字
3.
\d 匹配以为数字 ===>> [0-9]
\w 匹配以为数字, 字母或_
\s 匹配任何空白字符, 包括空格, 制表符, 换页符等等
. 匹配所有的字符
4. 量词
{n} n 为非负整数, 匹配前面的字符 n 次 abc{2} ===> abcc
{n,} n 为非负整数, 匹配前面的字符至少出现 n 次 abc{3,} ===>>abccc
{n.m} n,m 均为非负整数 n<=m 匹配前面的字符至少出现 n 次至多出现 m 次 abc{2,4} =>>>abcc abccc abcccc
5. 特殊字符
^ 匹配输入字符串的开始位置 ===>>>[^abc] 匹配除 abc 以外的字符
$ 匹配输入字符串的结束位置
\ 将下一个字符 匹配 成为一个特殊字符或原义字符
| =>>> x|y 匹配 x 或 y
常用正则
qq 号码 [1-9]\d{4,11}
qq 邮箱 [1-9]\d{4,11} @[q][q].(com|cn)
网易邮箱 [a-zA-Z1-9]@[1][6][3].(com|cn)
邮政编码 [1-9][0-9]{5}
身份证号 [1-9]\d{5}((18|19)\d{2}|([2][0][0-1][0-9]))((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]
手机号码 (\+86|0086)?\s*1[3456789]\d{9}
密码 [A-Z][a-z0-9A-Z]{5,17} 首字母大写
来源: http://www.bubuko.com/infodetail-3281488.html