如何检查,如果一个PHP字符串只包含英文字母和数字?
答
使用preg_match()。
if (!preg_match('/[^A-Za-z0-9]/', $string)) // '/[^a-z\d]/i' should also work.
{
// string contains only english letters & digits
}
答
if(preg_match('/[^A-Za-z0-9]+/', $str)) {
// ...
}
答
看一看这个快捷
if(!preg_match('/[^\W_ ] /',$string)) {
}
的class [^\W_]
比赛任何字母或数字而不是下划线。并注意!
符号。它可以帮助您扫描整个用户输入。
答
if(ctype_alnum($string)) {
echo "String contains only letters and numbers.";
}
else {
echo "String doesn't contain only letters and numbers.";
}
+0
不确定人们为什么不投票ctype函数。我无法进行映像,因为ctype函数的范围存在性能问题。 – 2014-09-06 20:05:13
+0
ctype_alnum是locale依赖的,所以它可能无法正常工作! – thethakuri 2016-06-03 14:38:24
答
如果你需要检查它是否是英文的。你可以使用下面的函数。可能帮助别人..
function is_english($str)
{
if (strlen($str) != strlen(utf8_decode($str))) {
return false;
} else {
return true;
}
}
答
PHP可以字符串比较使用preg_match(regex, string)
这样的正则表达式:
if (!preg_match('/[^A-Za-z0-9]+/', $string)) {
// $string contains only English letters and digits
}
肯定。它看起来更有效率。寻找第一个非范围内的字符似乎比扫描整个字符串更明智。 – 2012-02-19 17:23:39
N.B英语verison的上述链接在这里:http://php.net/manual/en/function.preg-match.php – 2014-09-23 10:22:49
好吧,我已经更新了英文版的链接。 – 2014-09-24 12:21:40