簡體   English   中英

正則表達式以匹配位數

[英]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.replaceString.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM