【问题标题】:A regex to highlight words in text用于突出显示文本中单词的正则表达式
【发布时间】:2013-06-16 07:47:07
【问题描述】:

我用 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 question

【问题讨论】:

标签: javascript regex


【解决方案1】:

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

下面的正则表达式可能没有优化和接近您的期望,但会完全满足您的需求,或者至少会给您一个入门。

试试这个正则表达式:

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

Live Demo

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

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

【讨论】:

    【解决方案2】:

    我不记得它在 javascript 中的确切语法,但它应该类似于

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-31
      • 1970-01-01
      • 1970-01-01
      • 2011-08-20
      • 2021-08-14
      • 2017-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多