PHPコーディング

正規表現による入力チェック(ファイル名)

2008年09月03日
PHPで文字列のチェックをするには、正規表現でチェックする方法があります。

ファイル名に日本語が含まれていないかチェックするには、

ereg("^[-0-9a-zA-Z_.]+$", $var);

とします。

以前書いた、
ereg("[a-zA-Z0-9]", $var);
は、$varの1文字めしかチェックしないので、ファイル名のように複数文字列のチェックには使えません。


そこで、ちょっと拡張です。

まず、【[]】の中身です。

a-zは小文字のアルファベットa~zまで。
同じくA-Zは大文字、0-9は数字の0~9です。
【-】、【_】、【.】も使うことができます。
ここで、【-】を先頭に持っています。a-zの【-】と区別するためのようです。


次に、
【^】は$varの最初、という意味です。
【$】は$varの最後、という意味です。
【+】は、直前の文字が少なくとも1個以上あることを示しています。


つまり、【^[-0-9a-zA-Z_.]+$】を訳すと、
【文字列の先頭から終わりまで、少なくとも1つ以上の文字を含み、その文字は、大文字小文字の半角アルファベット、数字、-、_、.のみで構成される】ということになるようです。


慣れていないため、正規表現は苦手です。

使えるようになれば、この上なく便利なのだろうと思うのですが、あまり機会がないので、慣れれない・・・


更に、PHPには【PCRE 関数】と【POSIX 正規表現関数(Perl互換)】の2種類の正規表現チェック関数があり、チェックの仕方も微妙に異なるようです。
ますますわからない・・・
2008年09月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
先月
来月
カテゴリ
検索
関連サイト
プロフィール
【ネットネーム】
みゅー

キャラクター by ツカエルサイト


【趣味】
・プログラミング
・写真
・楽器演奏
・手芸
・日曜大工
・家の中の不便を便利に
・考える
・自然科学
・猫と戯れる
・ジグソーパズル

【仕事】
・派遣社員でSE・PGやっていました。次の良い仕事がみつからないので、ビジネスへ注力しようと思っています。
・経験言語:VB6、VB.NET、PHP、Perl、JAVA、Oracle、SQLServer、PostgreSQL



【名前】
アン(足)

2014年4月22日生まれ 女の子
あだ名は くノ一
普段は普通にしゃべりますが、興奮すると『ニャ』を連発します

【趣味】
・狩
・ご飯を食べる
・ママのお手伝い

【仕事】
ママのビジネスの看板招き猫
ママの代わりにPC入力
仕事中のママの右腕を温める
ママに心配をかける
いろんな事をしでかしてママを退屈させない

RSSフィード
Tweet