Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.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_String_Node.js - Fatal编程技术网

Javascript 正则表达式单词边界在'-';

Javascript 正则表达式单词边界在'-';,javascript,regex,string,node.js,Javascript,Regex,String,Node.js,我有一个以下格式的字符串 “ad60 ad60-12 ad60 12-ad60” 现在我只想找到写有“ad60”的匹配项 我从 /\bad60\b/i 但是正则表达式发现“-”不是字符串的一部分。返回4个匹配项。 我尝试了很多东西,但它们要么返回4场比赛,要么什么也不返回 任何形式的帮助都将不胜感激。这应该可以找到任何以字母开头的单词 /[a-z][a-z\d]+/i 已添加 如果您想找到ad60字符串中包含的任何单词,请尝试以下操作 /[a-z\d\-\_]*ad60[a-z\d\-\_]*

我有一个以下格式的字符串

“ad60 ad60-12 ad60 12-ad60”

现在我只想找到写有“ad60”的匹配项

我从

/\bad60\b/i

但是正则表达式发现“-”不是字符串的一部分。返回4个匹配项。 我尝试了很多东西,但它们要么返回4场比赛,要么什么也不返回


任何形式的帮助都将不胜感激。

这应该可以找到任何以字母开头的单词

/[a-z][a-z\d]+/i
已添加

如果您想找到ad60字符串中包含的任何单词,请尝试以下操作

/[a-z\d\-\_]*ad60[a-z\d\-\_]*/i
但是用空格分隔的单词不会得到结果

您可以使用:

var s = "ad60 ad60-12 ad60 12-ad60";
var r = s.replace(/(^|\s)ad60(?=\s|$)/g, "$1@@");
//=> @@ ad60-12 @@ 12-ad60
将导致[“ad60”,“ad60”]
然后可以在匹配的元素中修剪空白。

这不好,我想我的问题不够清楚。我想找到“\b”标记中的内容,“\b”表示字符串边界,但写为“ad60某物”的单词与其中的ad60匹配,这是我不想要的,谢谢。您的预期输出是什么?写“ad60”的地方,由行尾的空格开始包围,但如果它在字符串中的某个位置,则不应匹配。正如在“12-ad60”和(“ad60-12”)中不应匹配一样。@anubhava“ad60”可以更改,这只是我输入的一个标记。PS:我是一个在RegexList可能规则的noob。你拥有什么,你想要得到什么,这真是太神奇了,s.match(/(^ |\s)ad60(?=\s |$)/ig)请解释一下答案。我会很感激的让我解释一下<代码>(^ |\s)匹配行首或空格
(?=\s |$)
是一个正向的向前看,它向前看空格或行尾。
"ad60 ad60-12 ad60 12-ad60".match(/(^ad60\s+)|(\s+ad60$)|(\s+ad60\s+)|(^ad60$)/ig);