使用变量内部正则表达式方法,无法使其工作

时间:2017-10-03 09:16:57

标签: javascript regex

我已经阅读了这个answer并且我理解如何使用Regex构造函数并且之前已经多次使用此方法,但在此示例中我无法理解为什么test()方法不返回true。请帮忙! : - )

// This returns true
console.log(/HYD\./gi.test("HYD.,CYLINDER"))

// Now I will use a variable inside this test method so
// I have to use the Regex constructor

const abbreviation = "HYD.";

// I have to replace all "." with "\." to be compliant with the regex language.
const regex = new RegExp(`\\b${abbreviation.replace(".", "\\.")}\\b`, "gi");
console.log(regex)

// Now testing the regex constructor
console.log(regex.test("HYD.,CYLINDER"));

1 个答案:

答案 0 :(得分:1)

你的两个正则表达不一样。你正在构建的那个,\b" Word Boundary"标记,导致你的正则表达式失败。

这是因为.,不是单词边界。

尝试使用文字/\bHYD\.\b/gi,您会发现它与之匹配。