[英]Regular expression for at least n digits anywhere in the string?
字符串中至少一位數字的正則表達式如下所示:
(?=.*[0-9])
這樣就會找到a1a
或a2a2
等。
假設我們希望字符串中至少有 2 個數字。 所以它應該為a2a2
或a2a2a2
返回 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.