我有一句话如下:
"我是一个很长的(ng.a)句子"
现在我正在使用JavaScript中的正则表达式(或手段)来搜索该句子,例如以下任何组合:' ng','(ng。&# 39;,' ng.a',' long(',' ng.a)'等。
我希望能够通过包含&{39; <b></b>
&#39;来突出显示找到的文字。标签。可能有超过1个给定搜索的实例,例如,如果您搜索字母&#39; e&#39;然后所有出现的字母都是&#39; e&#39;会有&#39; <b></b>
&#39;缠绕它,使它成为&#39; <b>e</b>
&#39;。
如果您输入字母&#39; ng.a&#39;也是如此,因为只有1次出现,然后将其包裹起来,使其成为&#39; <b>ng.a</b>
&# 39;
如何使用正则表达式执行此操作?
非常感谢您提前为此提供的帮助。
(为澄清问题而作出的修订)
次要修订......请阅读
我找到了一个接近我所追求的正则表达式,代码是:
var words = 'this is a ng. word (ng.a)'
var result = words.replace(/[(]?(ng\.)[)]?/gi, '<b>$1</b>');
但这会返回:
'this is a <b>ng.</b> word <b>ng.</b>a)'
...请注意左括号已被移除!
结果应该是:
'this is a <b>ng.</b> word (<b>ng.</b>a)'
如果搜索词不是&#39; ng.
&#39;它是&#39; (ng.a)
&#39;,结果应该是:
'this is a ng. word <b>(ng.a)</b>'
由于
答案 0 :(得分:0)
// Something like:
var x='this is a very (re.a) long sentence'
var y = x.replace(new RegExp('\\(re\\.a\\)'),'<b>$&</b>')
console.log(y) // prints "this is a very <b>(re.a)</b> long sentence"
// alternatively you don't have to escape the \ in /re/ style
var y = x.replace(new RegExp(/\(re\.a\)/),'<b>$&</b>')