let str = 'Hello world 1234 ./,;'; //正则表达式的规则写在‘/ /’里 let s2 = str.search(/[1-9]/i);/*也可以传递字符串,i表示忽略大小写,会返回搜索到的第一个字符的索引*/ str.replace(/[a-zA-Z]/g,'test');/*g表示全局,这里代表将所有字母替换成test*/ console.log(s2);
判断
可以知道某字符串是否满足规则
1 2
let re = /^#/; re.test('#这是一个注释');/*返回true*/
切分字符串
1
'a,b, c d'.split(/[\s,]+/); // ['a', 'b', 'c', 'd']
分组
1 2 3
var re = /^(\d{3})-(\d{3,8})$/; re.exec('010-12345'); // ['010-12345', '010', '12345'] re.exec('010 12345'); // null
通过exec可以提取分组里面的子串,返回一个数组,第一个元素是匹配到的整个字符串,后面跟着子串
贪婪
默认匹配是贪婪模式,即尽量往多的匹配
1 2
var re = /^(\d+)(0*)$/; re.exec('102300'); // ['102300', '102300', '']
非贪婪匹配
1 2
var re = /^(\d+?)(0*)$/; re.exec('102300'); // ['102300', '1023', '00']