繁体   English   中英

字符串中任何位置至少 n 位的正则表达式?

[英]Regular expression for at least n digits anywhere in the string?

字符串中至少一位数字的正则表达式如下所示:

(?=.*[0-9]) 

这样就会找到a1aa2a2等。

假设我们希望字符串中至少有 2 个数字。 所以它应该为a2a2a2a2a2返回 true ,但a2不会通过。

那个正则表达式会是什么样子?

您可以在此处将match与正则表达式模式\d.*\d一起使用:

 var inputs = ["a2", "a2a2", "a2a2a2"]; for (var i=0; i < inputs.length; ++i) { if (inputs[i].match(/\d.*\d/)) { console.log("MATCH => " + inputs[i]); } else { console.log("NO MATCH => " + inputs[i]); } }

在删除所有非数字字符后,我们还可以使用长度断言:

 var inputs = ["a2", "a2a2", "a2a2a2"]; for (var i=0; i < inputs.length; ++i) { if (inputs[i].replace(/\D+/g, "").length >= 2) { console.log("MATCH => " + inputs[i]); } else { console.log("NO MATCH => " + inputs[i]); } }

您可以使用量词。 例如:

([a-z][0-9]){2,}

这表示至少出现 2 次该模式。 在此处查看更多信息https://docs.microsoft.com/en-us/dotnet/standard/base-types/quantifiers-in-regular-expressions

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM