旧それなりブログの跡地、画像やスタイルやJSなどが壊れてることがあります。

[正規表現] ややこしい例に遭遇

2009年4月28日

※確認用の言語はJavaScriptを使ってます。

金額風文字列(\12800 とか)をチェックするのに、
以下の正規表現を書いている同僚が居た。

/^[\][0-9]+$/.test("12800")

どうも、[\] を \\? (エスケープ1文字が有るか無いか) だと思っているようで
falseが返るぞー返るぞー とワクワクしながら待ってたら・・・

true

えええっ!?

【解答】

[\][0-9]

部分が

] or [ or 0-9

という解釈になってました。

なるほど、

[[]

で [ の1文字を示す書き方が出来たのか!

文字クラス内は難しいなぁ。