が私のコードです:文字列内の他の言語(英語ではない)の文字を検出するにはどうすればよいですか?ここで
function isValid($string) {
return strlen($string) >= 6 &&
strlen($string) <= 40 &&
preg_match("/\d/", $string) &&
preg_match("/[a-zA-Z]/", $string);
}
// Negative test cases
assert(!isValid("hello"));
// Positive test cases
assert(isValid("abcde2"));
ご覧のとおり、私のスクリプトは、4つの条件に基づいて文字列を検証します。今、私はこの1つを開発しようとしている:
preg_match("/[a-zA-Z]/", $string)
この条件は、単に英語の手紙のためのtrue
を返します。 ا ب ث چ
のような他の文字を追加するにはどうすればいいですか?さて私はそれをどのようにすることができますか?
注:これらの文字はアラビア語ではなく、ペルシャ語です。
'preg_match( '/ \ p {L}/u'、$ string)'を使用し、 'strlen'を' mb_strlen'に置き換えてください。 –
@WiktorStribiżewああ、ちょうど '\ p'と' {l} 'の意味を教えてください。 – stack
'\ p {L}'はすべてのUnicode文字に一致します。しかし、発音区別符は一致しません。おそらく 'preg_match( '/ \ p {L} \ p {M} * +/u'、$ string)'が必要です。それがあなたのために働くかどうか確認してください。 –