例えば:
'1' => NG
'243' => NG
'1av' => OK
'pRo' => OK
'123k%' => NG
で試しました
/^(?=^[^0-9]*$)(?=[a-zA-Z0-9]+)$/
しかし、うまく機能していません。
例えば:
'1' => NG
'243' => NG
'1av' => OK
'pRo' => OK
'123k%' => NG
で試しました
/^(?=^[^0-9]*$)(?=[a-zA-Z0-9]+)$/
しかし、うまく機能していません。
したがって、どこかに少なくとも1つの「アルファベット」文字が存在する必要があることがわかります。
[a-zA-Z]
また、前後に任意の数の英数字(ゼロを含む)を含めることができるため[a-zA-Z0-9]*
、両側に次のように埋め込みます。
/^[a-zA-Z0-9]*[a-zA-Z][a-zA-Z0-9]*$/
それでうまくいくはずです。
これで試してください:
/^(?!^\d*$)[a-zA-Z\d]*$/
編集:これは基本的に受け入れられた答えと同じなので、私はあなたに何か違うものを与えます:
/^\d*[a-zA-Z][a-zA-Z\d]*$/
先読みや複雑なグループの繰り返しはなく、少なくとも1つのアルファベット文字があることを確認するだけです。これはかなり速いはずです。
これを試してみてください:^(?!\d+\b)[a-zA-Z\d]+$
(?!\d+\b)
純粋な数値を避け、\ w +を追加してから、アルファベットと数字を混ぜます。
これを試して:^[a-zA-Z0-9]*[a-zA-Z]+[a-zA-Z0-9]*$
これは、後読みなしでトリックを行う必要があります。
^(\d*[a-zA-Z]\d*)+$