js 动态拼接正则表达式

在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”,多加一个 “\” 字符

以上只是本人常用的方法 仅供参考 如有更好的办法也可自己使用

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值