preg_match验证

时间:2012-04-12 21:44:22

标签: php validation

好的,我在本网站上查到的所有涉及验证的内容都不是我想要的。

我想要做的是firstname和secondname中值的最小长度和最大长度,这是我目前拥有的代码。

        if (isset($_POST['submit'])) {
        $errors = array();

                 if (isset($_POST['firstname'])) {
            $fn = $_POST['firstname'];
        } else {
            $errors[] = "You have not entered a first name";
        }

        if (isset($_POST['secondname'])) {
            $sn = $_POST['secondname'];
        } else {
            $errors[] = "You have not entered a second name";
        }

我只是想知道如何将preg_match应用于最小为4个字母且最大值为15的那些?

我知道这与

有关
if(preg_match('/^[A-Z \'.-]{4,15}$/i', $_POST['firstname']))

这样做我试着做

    if (isset($_POST['firstname']) && preg_match('/^[A-Z \'.-]{4,15}$/i', $_POST['firstname')) {

但这也给了我一个错误:/

有人能为我解决这个问题吗?

谢谢!

更新: -

Nvm,我找到了解决方法。我刚刚做了这个

if (isset($_POST['firstname'])) {
        if (preg_match('/^[A-Z \'.-]{4,15}$/i', $_POST['firstname'])) {
            $fn = $_POST['firstname'];
        } else {
            $errors[] = "<center> <h3> You must enter between 4 and 15 characters! </h3></center>";                  
        }
    } else {
        $errors[] = "You have not entered a name";

} 对于firstname和secondname。 :)

2 个答案:

答案 0 :(得分:2)

为什么不用strlen()来获取字符串长度,然后根据您的限制进行测试?

$length = strlen($nick);
if ($length > 3 AND $length < 16) {
    //Do STuff
} else {
    //Do stuff for failed requirement
}

答案 1 :(得分:0)

我找到了解决方法。我刚刚做了这个

if (isset($_POST['firstname'])) {
            if (preg_match('/^[A-Z \'.-]{4,15}$/i', $_POST['firstname'])) {
                $fn = $_POST['firstname'];
            } else {
                $errors[] = "<center> <h3>You must enter between 4 and 15 characters!</h3> </center>";                  
            }
        } else {
            $errors[] = "You have not entered a name";
   }

对于firstname和secondname。

相关问题