[英]Regex to match number of digits
我正在寫一個正則表達式以匹配位數。 整個字符串可以包含至少6位數字,並且可以包含空格和破折號。
例如
123-45 6 valid
123456 valid
123-56 Invalid
最初,我編寫了一個正則表達式,負責處理字符串中至少6個字符。 但是,它無法工作,因為它是將破折號和空格算作6的一部分。
[\d\s-]{6,}
試過了
[\d]{6,}[\s-]
即使這個也不起作用。 您能建議如何解決此問題。
另一個嘗試:
[[\d]{6,}[\s]*[-]*]
要檢查是否存在至少6位數字,可以使用/(?:\\d\\D*){6,}/
。 如果還希望它只允許使用空格和破折號,則可以將模式調整為/^[ -]*(?:\\d[ -]*){6,}$/
使用String.replace
和String.match
函數的解決方案:
var isValid = function(str){
var match = str.replace(/[\s-]/g, "").match(/^\d{6,}$/);
return Boolean(match);
};
console.log(isValid("123-45 6")); // true
console.log(isValid("12345678")); // true
console.log(isValid("123-56")); // false
console.log(isValid("123-567<")); // false
您可以這樣操作(最后接受空格和破折號):
(\d[\s-]*){6,}
或類似這樣(僅破折號和數字之間的空格):
(\d[\s-]*){5,}\d
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.