我在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,là est la 问题
答案 0 :(得分:0)
最好的方法是由Alex K.
提供,IMO我建议你也看一下基于UNICODE
的正则表达式。
以下正则表达式可能不会优化并且不符合您的期望,但会完全符合您的需求,或者至少会为您提供启动。
试试这个正则表达式:
([\u00C8-\u00CB]tre)|(l[\u00E0-\u00E5\u0061])
请注意不区分大小写的复选框。
不要忘记从列表中查看等效的unicode here。
答案 1 :(得分:-2)
我不记得它在javascript中看起来的确切语法,但它会像
for(var input : inputs){
string.regexReplace("("+input+")","<b>\1<\b>")
}