PHP使用正则表达式来验证数据输入

时间:2011-01-17 20:25:46

标签: php regex

我的用户有一个cookie,其中包含一个名为code的字符串,代码只是随机数字或6到15个字符长的字母。在收到代码之后,我如何检查以确保代码长度在6到15个字符之间并且只包含数字和字母?

使用正则表达式是最好的方法吗?

3 个答案:

答案 0 :(得分:1)

有两种简单的方法可以做到这一点。一个是使用正则表达式:

$length = strlen($cookie);
if (6 <= $length && $length <= 15 && preg_match('/^[a-zA-Z0-9]*$/', $cookie)) {
    //...
}

另一个是使用内置的ctype_alnum函数,它正是这样做的(确保字符串是字母数字):

$length = strlen($cookie);
if (6 <= $length && $length <= 15 && ctype_alnum($cookie)) {
    //...
}

答案 1 :(得分:0)

我会尝试类似:^([a-zA-Z]|\d){6,15}$

“在字符串的开头和结尾之间,有6到15个字符,每个字符都是字母或数字”。

而且,哦,你需要的功能是preg_match()

答案 2 :(得分:0)

php的正则表达式很快,这是一个简单的选择器的例子:

"/^[a-zA-Z0-9]{6,15}$/"

但是@amosrivera对于strlen更快是正确的。如果cookie数据插入页面(echo $_COOKIE['key'];),则XML实体无关紧要,因为用户只能损害他们自己的页面。如果cookie存储在数据库中并为所有用户显示,则完全不同。