正则和字符串
2019-11-10 16:44 张海峰999 阅读(185) 评论(0) 编辑 收藏 举报
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}首字母大写