我已经阅读了这个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"));
答案 0 :(得分:1)
你的两个正则表达不一样。你正在构建的那个,\b
" Word Boundary"标记,导致你的正则表达式失败。
这是因为.,
不是单词边界。
尝试使用文字/\bHYD\.\b/gi
,您会发现它与之匹配。