正则的使用
match
str.match(reg) 返回的如果能匹配上
let scorereg3 = /((d+))/g var str = 'f(5)ff(5)' console.log(str.match(scorereg3)) // 结果 [ '(5)', '(5)' ]
不加全局匹配的
let scorereg3 = /((d+))/ var str = 'f(5)ff(5)' console.log(str.match(scorereg3)) // 结果[ '(5)', '5', index: 1, input: 'f(5)ff(5)', groups: undefined ]
test
reg.test(str)
需要注意的是 加上全局g.会导致下一次的判断,会根据上一次的位置查找,不论reg.test() 括号里内容是否变化,
比如
let scorereg3 = /((d+))/g var str = 'fvcffdgddddddff(5)' var str1 = 'kjdjjks(5)kk' var str2 = 'lkddjj' console.log(scorereg3.test(str)) console.log(scorereg3.test(str1)) console.log(scorereg3.test(str2)) // 结果 true false false
避免的方法:
1.调用一次之后手动将lastindex 置为0 reg.lastIndex=0
2.去掉正则的全局匹配 g
使用正则替换
let reg = /[@@]/g
str.replace(reg,''lll")