我想要正则表达式,如果任何连续的三个章程匹配,则返回true。
例如/[money]{3,}/g
它为mon,one,ney返回true,并为mny返回false。
答案 0 :(得分:0)
我不会使用正则表达式,为什么不使用indexOf
,更少的代码和更好的阅读。
类似于"money".indexOf("mon")>-1
这是一个演示,包含所有列出的示例:
let values = ["mon","one", "ney", "mny"];
let shouldMatch = "money";
for (let idx = 0; idx<values.length;idx++){
console.info(values[idx], "=", shouldMatch.indexOf(values[idx])>-1);
}
但是 如果您想使用 RegExp ,您可以像这样使用它:
(顺便说一句:这只是编写上述例子的“奇特”方式)
let values = ["mon","one", "ney", "mny"];
function matcher(word, value){
return (new RegExp(value)).test(word);
}
for (let idx = 0; idx<values.length;idx++){
console.info(values[idx], "=", matcher("money", values[idx]));
}
守则基本上:
创建一个新的正则表达式exp。
(new RegExp("mon"))
(等于/mon/
)而不仅仅是测试,如果“模式”与单词"money"
(new RegExp("mon")).test("money")
匹配,则返回{{1} }。此处全部转过来,我们正在检查金钱是否符合(sub) - 模式 mon 。
答案 1 :(得分:0)
正则表达式用作搜索字符串,您的应用程序需要使用基本字符串并动态构建具有许多OR和前瞻/后端的疯狂正则表达式。对于您的应用程序,编写一个使用indexOf
function stringContainsSubstr(sourceStr, subStr) {
return sourceStr.indexOf(subStr) !== -1;
}
var exampleStrs = ["mon", "one", "ney", "mny"];
var str = "money";
for (var i = 0; i < exampleStrs.length; i++) {
console.log(stringContainsSubstr(str, exampleStrs[i]));
}