1

好的,我在这个网站上检查过的所有关于验证的东西都不是我想要的。

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

        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";

} 对于名字和名字。:)

4

2 回答 2

2

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

$length = strlen($nick);
if ($length > 3 AND $length < 16) {
    //Do STuff
} else {
    //Do stuff for failed requirement
}
于 2012-04-12T21:46:56.573 回答
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";
   }

对于名字和姓氏。

于 2012-04-14T22:51:35.463 回答