【问题标题】:How can I match a whole word in JavaScript?如何在 JavaScript 中匹配整个单词?
【发布时间】:2011-01-15 00:46:11
【问题描述】:

我正在尝试通过文本框搜索整个单词。假设我搜索“我”,我应该在文本中找到所有出现的“我”这个词,而不是“memmm”。

我正在使用 JavaScript 的 search('my regex expression') 执行当前搜索(没有成功)。

在多次提出使用\b 开关(似乎不起作用)之后,我发布了对我的问题的修订解释:

出于某种原因,这似乎不起作用。假设以下 JavaScript 搜索文本:

var lookup = '\n\n\n\n\n\n2    PC Games        \n\n\n\n';
lookup  = lookup.trim() ;
alert(lookup );

var tttt = 'tttt';
alert((/\b(lookup)\b/g).test(2));

动线是必不可少的

【问题讨论】:

  • 您的代码正在字符串“2”中查找“查找”。

标签: javascript regex


【解决方案1】:

要使用动态正则表达式,请参阅我更新的代码:

new RegExp("\\b" + lookup + "\\b").test(textbox.value)

你的具体例子是倒退的:

alert((/\b(2)\b/g).test(lookup));

Regexpal

Regex Object

【讨论】:

  • var str = "pc+pc2/pc2+pc2*rr+pd"; var res = str.match(new RegExp("([\\W])pc2([\\W])",'g')); 我想要+pc2/+pc2*/pc2+
  • 有任何想法@ChaosPandion。
  • 我想检查是否存在特殊字符之前和之后。问题是在第一场比赛中/ 被删除。所以在那之后它开始从pc2+pc2*rr+pd检查。我没有得到/pc2+
【解决方案2】:

使用词边界断言\b

/\bme\b/

【讨论】:

    【解决方案3】:

    您可以使用以下代码:

    var stringTosearch ="test ,string, test"; //true
    var stringTosearch ="test string test"; //true
    var stringTosearch ="test stringtest"; //false
    var stringTosearch ="teststring test"; //false
    
    if (new RegExp("\\b"+"string"+"\\b").test(stringTosearch)) {
      console.log('string found');
      return true;
    } else {
      return false;
    }
    

    【讨论】:

      【解决方案4】:
      <script type='text/javascript'>
      var lookup = '\n\n\n\n\n\n2    PC Games        \n\n\n\n';
      lookup  = lookup.trim() ;
      alert(lookup );
                      var tttt = 'tttt';
                      alert((/\b(lookup)\b/g).test(2));
      
      </script>
      

      在这里很难说出你想做什么。 tttt 变量应该做什么?

      您要在哪个字符串中搜索?您是否要在字符串lookup 中查找2?那么你会想要:

      /\b2\b/.test(lookup)
      

      以下内容从您的正则表达式构造一个正则表达式,该正则表达式由一个单词边界、后跟字符串"lookup"(不是变量lookup 中包含的值)和单词边界组成。然后它会尝试将此正则表达式与字符串 "2" 进行匹配,该字符串是通过将数字 2 转换为字符串获得的:

      (/\b(lookup)\b/g).test(2)
      

      例如,以下返回true

      (/\b(lookup)\b/g).test("something to lookup somewhere")
      

      【讨论】:

        猜你喜欢
        • 2018-10-19
        • 2012-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-26
        • 2012-06-22
        • 2014-08-17
        相关资源
        最近更新 更多