检查字符串是否仅包含英文字母,数字和符号

时间:2017-06-01 07:59:03

标签: php

我想检查只包含英文字母,数字和符号的字符串。我尝试了下面的代码,但只有当所有字符都是不同的语言时它才有效。

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

例如

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

p.s:我的问题不重复,因为其他问题只涵盖字母和符号,我的覆盖符号也是

1 个答案:

答案 0 :(得分:1)

确定字符串是否只是可打印的ASCII工作?如果是这样,你可以使用这个正则表达式:

[ -~]

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

如果您还需要非ASCII字符,则可以使用Wikipedia页面获取所需的特定unicode格式:

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