1

正規表現を使用してデータ入力を検証しようとしています。私はこの分野に非常に慣れていないので、ご容赦ください。

1-xxxxx の形式の ID 番号を入力する必要があります。常に 1 で始まり、次に - が続き、その後に 1 ~ 6 文字が続きます。

ユーザーが 1-.* を使用して # なしで入力したと仮定して、正しく検証できました。

ここで、ユーザーが番号を 1-xxxxxx として入力することを保証する機能を維持したいと思いますが、# 文字を追加するとエラーになることもあります。[^#]1-.* を使用しても、# がある場合にのみエラーになり、他の条件を無視するため、望ましい結果が得られません。私はブール値に慣れていて、[^#|1-.*] を試しましたが、明らかにこれは悪い構文です。助けてください:D

4

1 に答える 1

1

#の前に を含めたくない場合は、1を試すことができます^1-[\da-zA-Z]{1,6}$。これにより、1〜6文字に少し余分に追加されます. あなたが望む句。これは単に正規表現を開始と終了に制限し、大きな文字列内に部分的な部分を許可しないようにします。あなたのコメントの例を使用して、ここでいくつかのテストを行いました。

正規表現をラップする^$ことで、 a 以外で始まると1壊れます。正規表現を分解すると、次のようになります。

  1. ^、行頭
  2. 1-、すでに理解した簡単な部分です。文字列の先頭が 1 であり、その後に が続き、-間に何もないことを要求します... スペースやその他のものはありません。
  3. [\da-zA-Z]、任意の数字または文字の小文字/大文字 a ~ z.
  4. {1,6}最後の曲を 1 回から 6 回繰り返します。
  5. $行の終わり。
于 2013-10-23T18:00:51.223 に答える