用于突出显示文本中的单词的正则表达式

时间:2013-06-19 16:51:16

标签: javascript regex

我在Javascript中编写了一个函数,用于突出显示文本中的单词。需要大约20行代码。

highlight(text, pattern)

这是:http://jsfiddle.net/sR5wM/1/

任何人都可以编写一个可以更有效地执行相同操作的正则表达式吗?高亮函数必须不区分大小写,并忽略变音符号。

例如:

highlight("Être ou ne pas être, là est la question", "etre la")

会屈服:

  

Être ou ne pas être est la 问题

2 个答案:

答案 0 :(得分:0)

最好的方法是由Alex K.提供,IMO我建议你也看一下基于UNICODE的正则表达式。

以下正则表达式可能不会优化并且不符合您的期望,但会完全符合您的需求,或者至少会为您提供启动。

试试这个正则表达式:

([\u00C8-\u00CB]tre)|(l[\u00E0-\u00E5\u0061])

Live Demo

请注意不区分大小写的复选框。

不要忘记从列表中查看等效的unicode here

答案 1 :(得分:-2)

我不记得它在javascript中看起来的确切语法,但它会像

for(var input : inputs){
    string.regexReplace("("+input+")","<b>\1<\b>")
}