0

私が取り組んでいる Javascript 正規表現がありますが、それがどのように機能するかについての私の理解と矛盾しています。

式は次のとおりです。/^[0-9]+$/

したがって、この正規表現をテキストボックスの値などでテストすると、値が少なくとも1桁で始まり、少なくとも1桁で終わるかどうかがチェックされることがわかります。ただし、何が起こっているかというと、値全体が数値である場合にのみテストが成功しています。アルファベットを間に入れると、テストが成功するはずだと理解していますが、後者は失敗しています。

誰かがこれについて私を明確にすることができますか? ありがとう。

4

2 に答える 2

3

はい、最初から最後までの一連の 1 つ以上の数字を意味します。

^[0-9].+[0-9]$

それが何をしているのかを理解するでしょう。

于 2013-05-09T22:37:44.880 に答える
1

あなたの表情/^[0-9]+$/は言う...

  • ^ 「文字列の先頭から開始」と言います
  • [0-9]「一致する文字列には次に数字が含まれている必要があります」と言います
  • +「数字は何回でも繰り返されますが、少なくとも 1 回は存在する必要があります」
  • $「文字列はその後終了する必要があります」と言います

途中に文字または何かがある可能性があることを指定しなかったため、正規表現はそれに一致しません。「数字で始まり数字で終わる」が必要な場合は、試してみてください...

/^[0-9](.*[0-9])?$/それは言う

  • ^文字列の先頭から開始
  • (グループを開始します - ただし、今は無視してください...後で明らかになります
  • [0-9]数字が続く
  • .任意の文字が続く
  • *直前に指定された「任意の文字」を 0 回以上繰り返す
  • [0-9]数字が続く
  • )?ただし、「数字が続く任意の文字」が存在するかどうかは許可します。これにより、一致する文字列として正確に 1 つの数値を持つことができます。
  • $ と文字列を終了します

または/^[0-9]([0-9a-zA-Z]*[0-9])?$/、数字と文字に制限したい場合に使用できます

于 2013-05-09T22:46:34.417 に答える