簡體   English   中英

任意數量的字符的正則表達式無限制但應該只允許12個數字

[英]Regular expression for any number of characters unlimited but should allow only 12 numbers

我在正則表達方面遇到困難。

要求是任意數量的字符無限制的正則表達式,但應僅允許12數字{digits}。

請幫忙,謝謝。

為什么不是這樣的:

var s = '12345aaaaaaaaaaaaaaaaabc444';

var maxDigits = 12,
    len = s.length,
    numDigits = 0,
    newLen;


if (len > maxDigits) {
    newLen = s.replace(/[0-9]/g, '').length;
    numDigits = len - newLen;
}

if (numDigits > maxDigits) {
    //error
}

我認為這個正則表達式可以解決這個問題:

/^(.*?[\d].*?){12}$/

您正在對數字兩側的任意數量的字符進行不匹配的匹配。 該子模式必須存在12次。

[0-9]{12}

試試這個...這將為您提供12位數字。 12而且只有12。

現在你需要添加任何字符而不是數字,需要幫助嗎?

匹配字符串中3位數的示例:

/^(([^\d]*\d[^\d]*){3})$/.test('asd1a2a4a') // -> (3 digits) true
/^(([^\d]*\d[^\d]*){3})$/.test('asd1a2a44a') // -> (4digits) false

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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