Javascript中对字符串进行正则转义 - js字符串转义-正则表达式

Javascript中对字符串进行正则转义 - js字符串转义

目标

var str = '[alias] cp -p ../../repo/.gitignore ./';
var strEncoded = regScapeStr( str );  // 自建函数,如下
console.log(strEncoded); 
// 输出结果: \[alias\] cp \-p \.\.\/\.\.\/repo\/\.gitignore \.\/

方法

function regScapeStr (str) {
    return str.replace(/[\-\/\\\^\$\*\+\?\.\(\)\|\[\]\{\}]/g, '\\$&');
}

感谢:

regex - Is there a RegExp.escape function in JavaScript? - Stack Overflow

javascript - 如何在正则表达式中转义特殊字符

对于我的网站,我使用dataTable插件,并为用户提供了过滤结果的可能性。我实现了一些过滤器,该过滤器从结果中动态加载,并包含每一列的所有不同值。

由于可以组合多个过滤器,因此我停用了智能搜索,而不得不启用了regEx-search。所有这些事情都很好。

我的问题是:我有“内容(另一个内容)”之类的内容,对于那些包含方括号的内容,搜索不起作用(未找到结果)。

可以在调用前屏蔽searchString吗?

 

table.column('myColumn:name').search(searchString, true, false, true).draw();


我试图将字符串替换为“ \)”或类似的内容,但这无济于事。如果我只是删除那些特殊字符,则无法找到结果,因为regEx搜索需要精确的字符串。

谁能帮我吗?

最佳答案




您可以添加并使用将转义特殊字符的功能escapeRegExp()
MDN - Regular Expressions文章中找到的字符:

 

function escapeRegExp(string){
  return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
}

// ... skipped ...

table.column('myColumn:name').search(escapeRegExp(searchString), true, false, true).draw();



  演示


有关代码和演示,请参见this jsFiddle

关于javascript - 如何在正则表达式中转义特殊字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32846782/

————————————————
版权声明:本文为CSDN博主「Rudon滨海渔村」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq285744011/article/details/120948339

转载于:https://www.coder.work/article/3855620 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值