正则的使用记录

正则的使用

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")
原文地址:https://www.cnblogs.com/buxiugangzi/p/11957303.html