How can I match a whole word in JavaScript?

前端 未结 4 503
栀梦
栀梦 2020-11-22 02:37

I am trying to search a single whole word through a textbox. Say I search "me", I should find all occurrences of the word "me" in the text, but not "

相关标签:
4条回答
  • 2020-11-22 03:04
    <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>
    

    It's a bit hard to tell what you're trying to do here. What is the tttt variable supposed to do?

    Which string are you trying to search in? Are you trying to look for 2 within the string lookup? Then you would want:

    /\b2\b/.test(lookup)
    

    The following, from your regular expression, constructs a regular expression that consists of a word boundary, followed by the string "lookup" (not the value contained in the variable lookup), followed by a word boundary. It then tries to match this regular expression against the string "2", obtained by converting the number 2 to a string:

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

    For instance, the following returns true:

    (/\b(lookup)\b/g).test("something to lookup somewhere")
    
    0 讨论(0)
  • 2020-11-22 03:18

    To use a dynamic regular expression see my updated code:

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

    Your specific example is backwards:

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

    Regexpal

    Regex Object

    0 讨论(0)
  • 2020-11-22 03:24

    Use the word boundary assertion \b:

    /\bme\b/
    
    0 讨论(0)
  • 2020-11-22 03:25

    You may use the following code:

    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;
    }
    
    0 讨论(0)
提交回复
热议问题