0

テキストボックスがあり、パターンを次のように一致させたい [a-z]{1}[A-Z]{1}[0-9]{1}

    var x=/^[a-z]{1}[A-Z]{1}[0-9]{1}$/;

    if(!x.test(document.getElementById('name').value))
    {
        alert("enter the correct format");
        return false;
    }

次の値に対してのみ機能します。aA1

これらの値が aA1、Aa1、1aA のようにランダムに入力できる場合はどうすればよいですか?

4

3 に答える 3

4

文字列のセットを任意の順序で照合するには、先読みを使用できます。このようなもの:

/^(?=.*a)(?=.*b)(?=.*c)[abc]{3}$/.test('cab')

構文 (?=whatever) は正の先読みです。つまり、マッチャーの位置を進めずに一致をチェックします。したがって、各グループは文字列内の任意の場所で文字を探します。最後の部分[abc]{3}は、文字列に他の文字が存在しないこと、および正確に 3 文字であることを保証します。複数でも問題ない場合は、代わりに [abc]+ を使用します。

詳細なリファレンスについては、http://www.regular-expressions.info/lookaround.htmlを参照してください。

于 2012-08-24T05:27:39.023 に答える
1

モンスター表現が使える

/$([a-z][A-Z][0-9])|([A-Z][a-z][0-9])|([0-9][a-z][A-Z])|([a-z][0-9][A-Z])|([A-Z][0-9][a-z])|([0-9][A-Z][a-z])^/

しかし、これが効率的またはスケーラブルなソリューションであるかどうかはわかりません。

于 2012-08-24T05:18:48.577 に答える
1

これを試して

/^([a-z]{1}[A-Z]{1}[0-9]{1}|[A-Z]{1}[a-z]{1}[0-9]{1}|[0-9]{1}[a-z]{1}[A-Z]{1})$/

最初の式は次[a-z]{1}[A-Z]{1}[0-9]{1}のパターンを扱います: aA1

2 番目の式は次[A-Z]{1}[a-z]{1}[0-9]{1}のパターンを扱います: Aa1

そして、3 番目の式は次[0-9]{1}[a-z]{1}[A-Z]{1}のパターンを扱います: 1aA

于 2012-08-24T05:45:48.530 に答える