检查字符串是否仅包含英文字母,数字和符号
我想检查只包含英文字母,数字和符号的字符串。我在代码下面尝试,但只有当所有字符都是不同的语言时才起作用。检查字符串是否仅包含英文字母,数字和符号
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:我的问题是不重复的,因为其他的问题只涉及字母和符号,矿山占地面积符号太
将确定一个字符串就是可打印的ASCII工作?如果是这样你可以使用这个表达式:
[ -~]
http://www.catonmat.net/blog/my-favorite-regex/
如果您需要非ASCII字符和比你可以使用维基百科页面来获得您所需要的特定的Unicode格式:
https://en.wikipedia.org/wiki/List_of_Unicode_characters#Control_codes
$ ok = preg_match('/ [ - 〜] /',“ព្រាបសុវok ok”); echo $ ok;它也返回1 – Vishnu
@Vishnu在这种情况下,您需要锚定正则表达式。尝试'preg_match('/^[ - 〜] * $ /',$ text);'。 – Phylogenesis
https://stackoverflow.com/questions/9351306/how-to-check-if-a-php-string-contains-only-english-letters-and-digits这应该是你的情况 – 2017-06-01 08:03:13
可能的重复[如何检查,如果一个PHP字符串包含onl y英文字母和数字?](https://stackoverflow.com/questions/9351306/how-to-check-if-a-php-string-contains-only-english-letters-and-digits) –
@IvanFranchi和kris:它不包括符号 – Vishnu