1

私の現在の正規表現は次のようになります

([a-zA-Z]*[0-9]+[\/\\#-]?[a-zA-Z0-9]*)+

正規表現は次を検証する必要があります。

  1. 英数字
  2. 少なくとも 1 つの数字を含む必要があります
  3. / 、 \ 、 # 、 - 、が許可されています
  4. 30 文字未満である必要があります

私が(上記のように)使用している正規表現は、数字ですべてを検証しています。特殊文字の有効性をチェックしていません。誰かが私が間違っているところを指摘できますか? 更新:これを使用

^([a-zA-Z]*[0-9]+[\/\\#-]?[a-zA-Z0-9]*)+$

-1 、/1 などの文字列では機能しません

4

2 に答える 2

3

私が考えることができる最も単純な正規表現は次のとおりです。

^(?=.*\d)[a-zA-Z\d\\/#-]{1,29}$

文字クラスと繰り返しは非常に簡単です。と最後に追加^した後$、メインのカンフーは、数字の存在を主張する固定されたルックアヘッドです。

于 2013-09-05T05:35:54.297 に答える
1

アンカーがなく、他のすべてのサブ式がオプションであるため、数字と一致します。文字列全体を一致させる場合は、正規表現を or で開始し、or で終了する必要があり\Aます^\Z$

于 2013-09-05T05:22:18.713 に答える