Javascript 将单词边界锚定应用于单个正则表达式中的所有标记

Javascript 将单词边界锚定应用于单个正则表达式中的所有标记,javascript,regex,word-boundary,Javascript,Regex,Word Boundary,假设我有一个要在字符串中匹配的标记列表:tok1、tok2、tok3等等 我希望在单个正则表达式中将单词边界应用于所有单词,但每次都不复制粘贴。以下是我试图避免的: /\btok1\b|\btok2\b|\btok3\b|\btok4\b|\btok5\b/g 我试过: /\b(str1|str2|str3|str4|str5)\b/g 但对于javascript.replace方法,它并不像预期的那样工作 是否有其他方法将单词边界锚应用于单个正则表达式中的所有标记 --编辑:-- 我试图分

假设我有一个要在字符串中匹配的标记列表:tok1、tok2、tok3等等

我希望在单个正则表达式中将单词边界应用于所有单词,但每次都不复制粘贴。以下是我试图避免的:

/\btok1\b|\btok2\b|\btok3\b|\btok4\b|\btok5\b/g
我试过:

/\b(str1|str2|str3|str4|str5)\b/g
但对于javascript.replace方法,它并不像预期的那样工作

是否有其他方法将单词边界锚应用于单个正则表达式中的所有标记

--编辑:--

我试图分解的正则表达式示例:

/\bjohn\b|\bjack\b|\bheather\b/g
预期结果:

john     //match
jack     //match
heather  //match
wheather //not match
hijack   //not match
johnny   //not match

您可以使用非捕获组并添加令牌

使用/g全局标志匹配所有事件。然后使用替换值替换匹配项

var str=约翰、杰克、希瑟、惠瑟、劫持、约翰尼; var res=str.replace/\b?:约翰|杰克|希瑟| b/g,测试;
console.logres;我认为这两种方法都没有问题。最终结果应该是什么?你的意思是喜欢吗?我编辑了我的问题,以澄清我试图分解的正则表达式和预期结果。javascript.replace方法有哪些地方不符合预期。在一个不吸引人的小组中尝试一下\b?:约翰|杰克|希瑟\b很有魅力,谢谢!你可以发布你的解决方案,并简要解释为什么它是一个答案,这样我就可以将它标记为已接受?你对OP自己的正则表达式有什么想法吗?这段代码也适用于捕获组,但你可以不使用它。看了评论,也许他能告诉我们?