HTML5では正規表現が使えるようになるという記事があがってたのだが、まあデザイナーさんたちに正規表現覚えろってのもアレなので……。学習ネタもあげてくれてるけど、HTML5のpattern属性に使う程度ならコピー&ペーストで済ませてもいいんじゃないかなと思うし。
文字種関連
数字だけに限定する
[0-9]*
1桁以上は必須にしたければこう
[0-9]+
数字を8桁に限定する
[0-9]{8}
数字を4桁以上に限定する
[0-9]{4,}
数字を3桁以上8桁以下に限定する
[0-9]{3,8}
ちなみにperlとかでは ^[0-9]{3,8}$ とやって頭から終りまでであることを示さないと動かないが、HTML5は例示を見る限り必要無いっぽい?
アルファベットに限定する
[a-zA-Z]*
1文字以上は必須にしたければこう。
[a-zA-Z]+
アルファベットを8文字に限定する
[a-zA-Z]{8}
アルファベットを3文字以上に限定する
[a-zA-Z]{3,}
アルファベットを3文字以上8文字以下に限定する
[a-zA-Z]{3,8}
n文字以下がやりたかったら一つ目の数字を1か0にすりゃいいんじゃね?
大文字だけとか小文字だけとかはサーバ側で変換すりゃいい。Perlならtr、Rubyならupcaseメソッドとかdowncaseメソッドがある。ユーザーに面倒かけさせんな。
$ irb >> 'hOgE'.upcase => "HOGE" >> 'hOgE'.downcase => "hoge" $ perl -le '$s = 'hOgE'; $s =~ tr/a-z/A-Z/; print $s' HOGE $ perl -le '$s = 'hOgE'; $s =~ tr/A-Z/a-z/; print $s' hoge
ひらがな・カタカナに限定する
[ぁ-んァ-ン]
平仮名だけとか片仮名だけとかは(ry
$ perl -Mutf8 -le 'binmode STDOUT, ":encoding(utf8)"; $s = 'ゎぁぃァィゥェォぁぃぅぇぉあかさたなガギグゲゴゐゑーゐ'; $s =~ tr/ぁ-ん/ァ-ン/; print $s' ヮァィァィゥェォァィゥェォアカサタナガギグゲゴヰヱーヰ $ perl -Mutf8 -le 'binmode STDOUT, ":encoding(utf8)"; $s = 'ゎぁぃァィゥェォぁぃぅぇぉあかさたなガギグゲゴゐゑーゐ'; $s =~ tr/ァ-ン/ぁ-ん/; print $s' ゎぁぃぁぃぅぇぉぁぃぅぇぉあかさたながぎぐげごゐゑーゐ
irbになぜか日本語入らなかったのでrubyはスクリプトで。
$ cat >hirakana.rb $KCODE = 'UTF-8' require 'jcode' puts 'ゎぁぃァィゥェォぁぃぅぇぉあかさたなガギグゲゴゐゑーゐ'.tr('ぁ-ん', 'ァ-ン') puts 'ゎぁぃァィゥェォぁぃぅぇぉあかさたなガギグゲゴゐゑーゐ'.tr('ァ-ン', 'ぁ-ん') ^D $ ruby hirakana.rb ヮァィァィゥェォァィゥェォアカサタナガギグゲゴヰヱーヰ ゎぁぃぁぃぅぇぉぁぃぅぇぉあかさたながぎぐげごゐゑーゐ
同じ要領でアルファベットの全角半角変換もできるのでお試しあれ。