2017-06-01 15 views
0

英語の文字、数字、記号のみを含む文字列をチェックしたいのですが、以下のコードを試しましたが、文字列に英語のアルファベット、数字、記号だけが含まれていないか確認してください。

例えば
if(strlen($string) != mb_strlen($string, 'utf-8')) 
    { 
echo "No English words "; 
    } 
    else { 
echo "only english words"; 
    } 

1. hellow hi 123#[email protected]#[email protected]#()#@# -- true 
2. ព្រាប សុវ ok yes #@# - false 
3. this is good 123 - true 
4. ព្រាប -- false 

PS:私の質問が重複していない他の質問が唯一のアルファベットと記号をカバーしているため、鉱山はあまりにシンボルをカバー

+1

https://stackoverflow.com/questions/9351306/how-to-check-if-a-php-string-contains-only-english-letters-and-digitsこれはあなたのケースであるべきです –

+0

可能な[ PHP文字列にonlが含まれているかどうかを調べる方法y英字と数字?](https://stackoverflow.com/questions/9351306/how-to-check-if-a-php-string-contains-only-english-letters-and-digits) –

+0

@IvanFranchiとkris:それは記号をカバーしません – Vishnu

答えて

1

う文字列だけで印刷可能なASCIIの仕事であるかどうかを決定します?もしそうなら、あなたは、この正規表現を使用することができます。

[ -~] 

http://www.catonmat.net/blog/my-favorite-regex/

あなたが同様にあなたが必要な特定のUnicodeフォーマットを取得するWikipediaのページを使用することができますよりも、非ASCII文字が必要な場合:

https://en.wikipedia.org/wiki/List_of_Unicode_characters#Control_codes

+0

$ ok = preg_match( '/ [ - 〜] /'、 'ព្រាបសុវok yes'); echo $ ok;このために1を返します – Vishnu

+0

@Vishnuこの場合、正規表現をアンカーする必要があります。 'preg_match( '/^[ - 〜] * $ /'、$ text);'を試してください。 – Phylogenesis

関連する問題