簡體   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