如何在 JavaScript 中匹配整个单词?

IT技术 javascript regex
2021-01-26 13:12:55

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

我正在使用 JavaScriptsearch('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));

动线很重要

4个回答

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

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

你的具体例子是倒退的:

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

正则表达式

正则表达式对象

有任何想法@ChaosPandion。
2021-03-13 13:12:55
var str = "pc+pc2/pc2+pc2*rr+pd"; var res = str.match(new RegExp("([\\W])pc2([\\W])",'g'));我要+pc2/+pc2*/pc2+
2021-03-17 13:12:55
我想检查特殊字符前后是否存在。问题是在第一场比赛中/被删除。所以在那之后它是从 开始检查的pc2+pc2*rr+pd我不明白/pc2+
2021-04-05 13:12:55

使用词边界断言\b

/\bme\b/

您可以使用以下代码:

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;
}
<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"通过将数字转换为字符串获得的 string 进行匹配2

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

例如,以下返回true

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