繁体   English   中英

Javascript - 正则表达式取代忽略一些特殊字符

[英]Javascript - Regex replace ignoring some special character

我有一个字符串可以..

Samsung Blu-Ray Player
Samgung Bluray player
Samsung Blu/Ray player

我知道想找到并替换蓝光(后来:给它一定的颜色)。 因此,我想用正则表达式替换这个词。 但在这种情况下不知道正则表达式语法。 它应该忽略“/”和“”并找到字符串,不区分大小写。

尝试这个 :

var str = "Samsung Blu-Ray Player";
var res = str.replace(/(Blu.*?ray)/gi, '<span style="color:red">$1</span>');
console.log(res);

您可以使用替换字符串

str = str.replace(/samsung blu[^\w]?ray player/gi, 'Samsung Blu Ray player')

哪里

  • [^\\w]? - 是任何非字符(非字母数字)
  • ? 使它成为可选的
  • /gi -标志意味着g叶形搜索和情况i nsensitive

/\\bblu\\s*[^\\w]?\\s*ray\\b/gi

\\b这个词边界使得它可以从匹配的blurayfish更多的保护

\\s*使白色空间不敏感,因此blu - ray将匹配

[^\\w]匹配非字符号,如-? 意味着可选

gi表示所有匹配,不区分大小写。

这是一个更具说明性的页面,旁边有测试用例和解释。

http://regex101.com/r/gD4xS6

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM