在js中很多时候我们都需要使用正则 比如
这里我利用正则查找字符 a 后面跟着一个或多个空格的内容,我们便可以这么做
let str = "abcdefa aab bb"
let reg = /a\s.*/
console.log(reg.exec(str))
但如果我们把条件改了,我们要查找字符b后面跟着一个或多个空格的内容,那我们不可能去再重新写一个正则,如果正则逻辑很复杂的话我们不可能每次都去重写一个新的正则,这样很麻烦
这时我们便可以动态的去拼接正则,再js中不能直接使用常规的字符串拼接方式来拼接,它必须使用eval来进行拼接
let str = "abcdefa aab bb"
let target = "b";
let reg2 = eval('/'+target+'\\s.*/')
console.log(reg2.exec(str))
这样我们就可以根据自己条件来改,如果要匹配a就把target赋值a,匹配b就赋值为b,这样就不需要再去重写正则了,
需要注意的是,用eval拼接字符时,对于 “\” 符号需要多加一个转义符,例如上面的 “\s” 需要改成 “\\s”,多加一个 “\” 字符
以上只是本人常用的方法 仅供参考 如有更好的办法也可自己使用