0

正規表現で困っています。

要件は、任意の文字数の無制限の正規表現ですが、12数字 {数字} のみを許可する必要があります。

助けてください、ありがとう。

4

4 に答える 4

1

なぜこのようなものではありません:

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
}
于 2013-10-25T23:06:05.690 に答える
1

この正規表現がうまくいくと思います:

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

数字の両側にある任意の数の文字に対して貪欲でない一致を行っています。そのサブパターンは 12 回存在する必要があります。

于 2013-10-25T23:21:47.443 に答える
0

文字列内の 3 桁の一致の例:

/^(([^\d]*\d[^\d]*){3})$/.test('asd1a2a4a') // -> (3 digits) true
/^(([^\d]*\d[^\d]*){3})$/.test('asd1a2a44a') // -> (4digits) false
于 2013-10-25T23:18:01.230 に答える
0
[0-9]{12}

これを試してください... これで 12 桁が得られます。12と12のみ。

数値ではなく任意の文字を追加する必要があります。ヘルプが必要ですか?

于 2013-10-25T23:02:51.180 に答える