整个单词匹配在JavaScript中

时间:2010-02-09 22:17:03

标签: javascript regex

我在网页上使用javascript。我试图通过文本框搜索一个完整的单词。说我搜索:'我',我应该在文本中找到所有'我',但不会发现'memmm'。

我使用javascript的搜索('我的正则表达式')来执行当前搜索(没有成功)。

谢谢!

编辑:在使用\ b开关的几个提案[似乎不起作用]后,我发布了我的问题的修订说明:

从某种原因来看,这似乎并没有做出伎俩。假设以下javascript搜索文本:

<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>

移动线条至关重要

4 个答案:

答案 0 :(得分:40)

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

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

您的具体示例是向后的:

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

Regexpal

Regex Object

答案 1 :(得分:20)

使用边界断言\b

/\bme\b/

答案 2 :(得分:5)

您可以使用以下代码:

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;
}

答案 3 :(得分:2)

<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变量应该做什么?

您要搜索哪个字符串?您是否尝试在字符串2中查找lookup?然后你会想要:

/\b2\b/.test(lookup)

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

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

例如,以下内容返回true

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