4バイト文字の判定に以下のコードを書きました。
下記のコードだとうまく判定されなかったのですが、
パターン修飾子の「u」(PCRE_UTF8)をはずすとうまく作動しました。
UTF-8扱っていればとりあえず「u」付与すればいいのかなという認識で付けていたのですが、今回のような文字コードの判定の時は違うようです。
どういうときに「u」をつけるべきなのでしょうか?
php
1// パターン修飾子「u」あり 2// うまく判定されない 3if (preg_match('/[\xF0-\xF7][\x80-\xBF][\x80-\xBF][\x80-\xBF]/u', $value)) 4{ 5 return false; 6} 7else 8{ 9 return true; 10} 11 12// パターン修飾子「u」なし 13// うまく判定された 14if (preg_match('/[\xF0-\xF7][\x80-\xBF][\x80-\xBF][\x80-\xBF]/', $value)) 15{ 16 return false; 17} 18else 19{ 20 return true; 21}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/11 05:21