Hatena::ブログ(Diary)

myhd このページをアンテナに追加 RSSフィード Twitter

みょこym

MY HDD

myhdd

myhd

2010-02-17

空白文字チェック用正規表現

/[^\s ]/

日本語訳: 空白系文字(\s)と全角スペース( )以外(^)の文字が含まれている。


解説

・\sは空白文字の略記法で、半角スペース・タブ・改行文字を含んでいます。

・\sの後ろの空白は全角スペースです。

・全角スペースは漢字と同じ扱いなので、\sには含まれません。

・大括弧([ ])は、カッコ内のどれか1文字という意味です。
 [ ]が無いと、「\s 」という塊を検索してしまいます。

・[ ]の外で^を使うと、別の意味になります。


使用例(PHP

//引数文字列が、
//未定義・NULL・空文字列・空白文字のみの文字列
//いずれかの場合、trueを返す
function isBlank($str)
{
  if( !isset($str) ){
    return true;
  }elseif( preg_match("/[^\s ]/", $str) ){
    return false;
  }else{
    return true;
  }
}


■参考

正規表現 - KOMONET
http://www.komonet.ne.jp/~perl/chap7.htm


正規表現の解説 - K2Editor私設応援ページ
http://www4.ocn.ne.jp/~kaerume/k2e/regex_top.html

名無し名無し 2016/11/22 21:10 この記事の通りにしてもうまく動きません。
phpの正規表現内でマルチバイト文字を使うと、バグります。
UTF-8なら、

/[^\s ]/u
のように、
uというパターン修飾子を付けて初めて期待通りに動きます。

ソースは以下です。
http://codaholic.org/?p=1671
これで1時間嵌りました。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/myokoym/20100217/1266410961