Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中匹配整个单词?_Javascript_Regex - Fatal编程技术网

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

如何在JavaScript中匹配整个单词?,javascript,regex,Javascript,Regex,我试图通过文本框搜索一个完整的单词。如果我搜索“我”,我应该在文本中找到所有出现的“我”一词,但不是每个单词的“memmm” 我正在使用JavaScript的搜索(“我的正则表达式”)执行当前搜索(没有成功) 在提出了几项使用\b开关的建议(这些开关似乎不起作用)之后,我对我的问题发布了一份修订后的解释: 出于某种原因,这似乎不起作用。假设以下JavaScript搜索文本: var lookup = '\n\n\n\n\n\n2 PC Games \n\n\n\n'; loo

我试图通过文本框搜索一个完整的单词。如果我搜索“我”,我应该在文本中找到所有出现的“我”一词,但不是每个单词的“memmm”

我正在使用JavaScript的
搜索(“我的正则表达式”)
执行当前搜索(没有成功)

在提出了几项使用
\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));

移动线是必要的

使用单词边界断言
\b

/\bme\b/

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

new RegExp("\\b" + lookup + "\\b").test(textbox.value)
您的具体示例如下:

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

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

(/\b(lookup)\b/g).test(2)
例如,下面返回
true

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

您可以使用以下代码:

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

您的代码正在字符串“2”中查找“lookup”。
var str=“pc+pc2/pc2+pc2*rr+pd”
var res=str.match(新的RegExp([\\W])pc2([\\W]),'g')
我想要
+pc2/
+pc2*
/pc2+
。有任何想法@chaospandio。我想检查特殊字符是否存在前后。问题在于第一个匹配
/
是删除。因此,在此之后,开始从
pc2+pc2*rr+pd
进行检查。我没有得到
/pc2+
(/\b(lookup)\b/g).test("something to lookup somewhere")
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;
}