2015-12-16 74 views
0

我想创建一个表单验证,我想确保,所以我想用preg_match做,用户将无法在文本框中输入任何危险的代码。 我不喜欢用户输入的是(某些东西,而不是来自a-z的单词,来自A-Z和数字的单词)。 现在如何在这里使用preg_match如何在php中使用preg_match?

+2

如果你只是想熟悉正则表达式比我强烈推荐这个页面打转转:https://regex101.com/ – maxhb

+2

你做任何研究吗?懒惰的问题! –

回答

2

此正则表达式将只允许字母和数字。

/^[A-Z\d]+$/i 

中的preg_match使用

if(preg_match('/^[A-Z\d]+$/i', $string)) { 
     echo 'Good'; 
} else { 
    echo 'Bad'; 
} 

Regex101演示:https://regex101.com/r/wH4uQ3/1

^$需要整个字符串匹配(他们是锚)。 []是一个字符类,表示里面的任何字符都是允许的。 +表示一个或多个前面的字符/组(这被称为量词)。 A-Z是字符类可理解为字母a-z的范围。 \d是一个数字。 / s是分隔符,告诉正则表达式的开始和结束。 i是使正则表达式不区分大小写的修饰符(可以删除它并添加a-z,以便允许使用小写字母)。

PHP演示:因为空格是不允许https://eval.in/486282

注意PHP演示失败。要允许空格在字符类中添加\h\ss包括\h,所以不需要两者; \h用于水平空格)。

-1

下面是一个简单的例子:

你可以查看更多出:http://php.net/manual/en/function.preg-match.php

你也可以这样做:$email = htmlspecialchars($_POST['email']);

$email = test_input($_POST["email"]); 
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
    $emailErr = "Invalid email format"; 
}