正規表現は、入力値をチェックすることもできる。
Webプログラムでは、悪意のあるユーザーが XSS (クロスサイトスクリプティング)や SQLインジェクション を仕掛けてくることがある。その対策として、入力値チェックは必要不可欠だ。
今回は、入力された文字列がメールアドレスかどうかチェックするプログラムを紹介する。
メールアドレスで使える文字
メールアドレスの書き方は、RFC 2282 Internet Message Format【和訳】に定義されている。
しかし、これを定義通りに解釈するとURLより複雑になってしまう。そこで、実用上差し支えない程度に簡略化し、正規表現で表したのが下記である。
/[0-9a-z!#\$%\&'\*\+\/\=\?\^\|\-\{\}\.]+@[0-9a-z!#\$%\&'\*\+\/\=\?\^\|\-\{\}\.]+/
となる。順に説明していこう。
今回使った正規表現
- ?
- 直前1文字の0または1回の繰り返し。
ここでは、http, https の両方にマッチする。
- [ ]
- 文字クラス。
この中に記述された文字の並びのうちの1文字を表す。
- -
- 文字の範囲指定。
a-z はアルファベット小文字すべてに、A-Zはアルファベット大文字すべてに、0-9は数字すべてにマッチする。
- +
- 直線1文字の1回以上の繰り返し。
ここでは、文字クラス[...]に記述された文字、いずれかの1回以上の繰り返し――すなわち、URL 文字列にマッチすることになる。
- \
- エスケープ。この直後の1文字自身を指す。
直後の1文字が正規表現の特殊文字(メタキャラクタ)である場合に用いる。
この正規表現を使ったサンプル・プログラムを次のページに掲載する。
(この項つづく)
| 2007年01月24日更新 | ||
| <<前へ | <目次> | 次へ>> |
| 戻る | 【関連ページ】 | |