正则匹配与搜索
正则匹配:
var str = "asdasd123123rr66";
console.log(str.match(/[0-9]+/)); //1
var pat = new RegExp("[0-9]+");
console.log(str.match(pat)); //2
console.log(pat.exec(str)); //3
console.log(str.match(/[0-9]+/g)); //4
上述1,2,3条语句在控制台输出的结果都是一样的,
结果为["123123", index: 6, input: "asdasd123123rr66", groups: undefined]
第4条语句的输出为["123123", "66"]
,g修饰符代表匹配多次
正则搜索:
var str = "asdasd123123rr66";
console.log(str.search(/[0-9]+/)); //1
var pat = new RegExp("[0-9]+");
console.log(str.search(pat)); //2
console.log(pat.test(str)); //3
上述1,2条语句在控制台输出的结果都是一样的,结果为6,表示首次匹配的index
第3条语句的输出为true,表示匹配到了
修饰符
https://www.w3school.com.cn/jsref/jsref_obj_regexp.asp
正则替换与分割
正则分割:
var str = "23#43'5.345%5*34";
console.log(str.split(/[^0-9]/));
输出结果为["23", "43", "5", "345", "5", "34"]
,字符串分割的方式为任意非数字
正则替换:
var str = "23#43'5.345%5*34";
console.log(str.replace(/[^0-9]/g,","));
输出结果为23,43,5,345,5,34
正则替换里的特殊用法
str = "04/28/2020";
console.log(str.replace(/(\d{2}\/)(\d{2}\/)(\d{4}\/)/,$3-$1-$2));
以上两行代码的含义是把西方的日期格式转化成年月日形式,输出结果为2020-04-28
$1代表前面正则式里的第一个小括号的内容,同理可推$2与$3的含义