チェックは、正規表現でやれば、いろんな言語でいけそうなので、正規表現で、いろんな値をチェックする方法を考える、シリーズ「正規表現でのチェック方法を考える」。
数字はひととおり終わったので、今回から、文字に行きます。
ということで、はじめは英数字です。
なお、このシリーズにおいて、本文中¥となっているところは、
本来は、半角の円マークにするところです。
(半角円マークでかくと、修正のとき面倒なので・・・)
■[0-9A-Za-z]はいいんだけど。。。
英数字というと、要素を全部挙げて、
/^[0-9A-Za-z]*$/
と書いた場合は、もんだいありません(たぶん)
ただ、¥wを使って、
/^¥w*$/
と書いた場合は、注意が必要です。
■Rubyは、動作が違う
いつものように、JavaScriptにそれを入れると、
半角英数字は、OK
全角で数字を入力すると、エラー!
です。
ところが、Rubyだと、全角の数字も、英数字でOKのようです。
(¥dは、Rubyでも半角のみのようです)
このように、RubyとJavascriptでは、動きが違うものがあるみたいです。
■サンプル
きょうのサンプルはRubyにします。
s="123" s.sub(/¥w/,"c") |
(¥は本当は半角です)
とやると(irbだと、結果が表示される)、
c23
とおきかわって、表示されます。
では、
s="123" s.sub(/¥w/,"c") |
(¥は本当は半角です。123は本当に全角です。cは半角です)
とやると・・・(ruby-1.9.0-0のirbで実行しています)
・・・見なかったことにしましょう(^^;)