0

既存のform_validaionクラスを拡張して、codeigniterを使用しているアクセント付き文字を受け入れるようにするにはどうすればよいですか?これはこれまでのところMY_Form_validationです:

class MY_Form_validation extends CI_Form_validation{
    public function __construct(){
        parent::__construct();
    }
    public function alpha_dash($str){
        return (!preg_match("/^([-a-z0-9 _-])+$/i", $str)) ? FALSE : TRUE;
    }
}

アクセント付きの文字で私はこれを意味します:

「éàèçêîâôïöëäù...」

前もって感謝します。

4

2 に答える 2

3

クラスに必要な文字を追加するだけです。

[a-z0-9 _àèéù-]

またはユニコードプロパティを使用します。

[\pL\pN_ -]

\pL\pN任意の数字の任意の文字を表します

例:

$str = 'abcèéù';
echo preg_match('/^[\pL\pN_ -]+$/', $str) ? 'TRUE' : 'FALSE';

出力:

TRUE
于 2012-12-27T13:12:04.740 に答える
0

これは古い質問ですが、受け入れられた答えは不完全です。検索パターン\pLは、setLocale構成の影響を受けます。それがどこでも機能するためには、ユニコードを使用する必要があります。そんな感じ:

public function alpha_dash($str){
    return (bool) preg_match('/^[0-9\pL _-]+$/u',$str);
}
于 2019-03-22T19:27:10.003 に答える