- 本文地址: https://www.yangdx.com/2019/02/4.html
- 转载请注明出处
PHP正则表达式判断字符串是否全为中文,或全为字母,或全为数字,又或者是它们的任意组合,一般用于新用户注册环节,判断输入的用户名是否合法。
代码如下(utf-8编码):
/**
* 判断字符串是否全为中文、字母、数字或任意组合
* @param string $str
* @return boolean
*/
function isChineseLetterNumber($str) {
if (preg_match('/^[\x{4e00}-\x{9fa5}a-z0-9]+$/iu', $str)) {
return true;
} else {
return false;
}
}
其中,[\x{4e00}-\x{9fa5}] 是汉字的字符编码区间。
以下测试举例:
var_dump(isChineseLetterNumber('小明')); //true 纯中文
var_dump(isChineseLetterNumber('9527')); //true 纯数字
var_dump(isChineseLetterNumber('Michael')); //true 纯字母
var_dump(isChineseLetterNumber('lee9527')); //true 字母+数字
var_dump(isChineseLetterNumber('小明boss')); //true 中文+字母
var_dump(isChineseLetterNumber('小明by007')); //true 中文+字母+数字
var_dump(isChineseLetterNumber('xyz-32312')); //false 包含减号“-”
var_dump(isChineseLetterNumber('abc_16232')); //false 包含下划线“_”
var_dump(isChineseLetterNumber('张三!')); //false 包含标点符号“!”
var_dump(isChineseLetterNumber('张三。123')); //false 包含标点符号“。”
快来评论一下吧!
发表评论