【问题标题】:Search and Highlight Text With Bracketed Text in javascript by regular expression通过正则表达式在javascript中搜索和突出显示带括号的文本的文本
【发布时间】:2011-04-11 07:21:20
【问题描述】:

我正在做一个项目,我想搜索并突出显示文本,我可以通过正则表达式搜索单词和多个单词。我的代码是

var RE = new RegExp(word_array[i],"gi")

word_array 什么都没有,但我的单词是数组格式,可以搜索并突出显示 ex if

         word_array[0] ="tobacco"
         word_array[1] ="chipper(tobacco)"
         word_array[2]="tobacco(snuf)"

var RE=new RegExp("tobacco","gi")

我的 word_array 中的单词烟草,这个单词在我的 html 页面中搜索并突出显示。但是像“chipper(tobacco)”这样的单词在我的数组中包含带括号文本的文本不会搜索和突出显示,即var RE =new RegExp("chipper(tobacco)","gi")

我用[abc],(/\[([^\]]+)\],(?:abc) 尝试了一些东西,但没有搜索和突出显示 谢谢,但我尝试了你的转义序列(chipper(tobacco)它只搜索突出显示“chippertobacco”而不带括号我想用括号突出显示单词“chipper(tobacco)”这应该在循环中的word_array [i]中所以请告诉我如何可以在 var RE = new RegExp(word_array[i],"gi") 中给出 word_array[i] 的代码,除了全局搜索和不区分大小写之外什么都没有

提前致谢

请尽快帮助任何人

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    括号在正则表达式中具有特殊含义。如果要匹配文字括号,则需要对其进行转义。匹配“chipper(tobacco)”使用RegExp("chipper\(tobacco\)","gi")

    【讨论】:

    • @herotwist:请注意,对于程序员来说,() 这些字符通常称为parentheses,而不仅仅是括号,通常表示这些字符[]
    • 非常正确。我只是使用与 OP 相同的语言以避免混淆。我很确定他的母语不是英语。
    • 谢谢,但我尝试了你的转义序列(chipper(tobacco)它只搜索突出显示“chippertobacco”而不带括号我想用括号突出显示单词“chipper(tobacco)”这应该在 word_array[i ] 在循环中,所以请告诉我如何在 var RE = new RegExp(word_array[i],"gi") 中给出 word_array[i] 的代码
    【解决方案2】:

    我用 Reg Exp 尝试了转义序列

                     "chipper\\"(tobacco\\) 
    

    它将搜索并突出显示

    "chipper(tobacco)" 和数组

              word_array[i].replacereplace("(","\(").replace(")","\\)")
    

    【讨论】:

      猜你喜欢
      • 2020-11-11
      • 1970-01-01
      • 2014-04-06
      • 1970-01-01
      • 2015-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      相关资源
      最近更新 更多