PHP-如何只允许文本字段中的字母。另外,如何只允许文本字段中的数字

时间:2016-05-05 14:05:39

标签: php html

如何添加仅接受字母的输入字段。另外,如何添加仅接受数字的输入字段。一旦用户输入在文本字段中说出只接受数字的字母就会出错。

if(empty($_POST['firstname']))
        {
            $errors['firstname1'] = " Required";
        }

    if(empty($_POST['zip']))
        {
            $errors['zip1'] = " Required";
        }

    <!-- Letters only for firstname -->

    <p>
                <label for="firstname" class="label"><font color="#040404">*First Name:</font></label>
                <input class="textinput" id="firstname" type="text" name="firstname" value="<?php if(isset($_POST['firstname'])) echo $_POST['firstname']; ?>" /><?php if(isset($errors['firstname1'])) echo $errors['firstname1']; ?>
            </p>
    <!-- Letters only for zip -->

    <p>

                    <label for="zip" class="label"><font color="#040404">*Zip Code:</font></label>
                    <input id="zip" type="text" name="zip" value="<?php if(isset($_POST['zip'])) echo $_POST['zip']; ?>" /><?php if(isset($errors['zip1'])) echo $errors['zip1']; ?> <?php if(isset($errors['zip2'])) echo $errors['zip2']; ?>
                </p>

6 个答案:

答案 0 :(得分:5)

考虑使用PHP函数ctype_alpha&amp;表单验证中的ctype_digit

ctype_alpha 仅在验证由字母组成时才返回true,如果使用数字或特殊字符,则返回false。

ctype_digit 仅在验证由数字组成时才返回true,如果使用字母或特殊字符,则返回false。

这是一个检查数组的快速示例。它将返回false,因为其中一个字符串中有一个数字:

$string = array('word', 'number5');
if (ctype_digit($string)) {
    echo "All numbers are true!";
} else {
    echo "Something's not right";
}

希望这有帮助!

答案 1 :(得分:4)

  

如何只允许文本字段中的字母。

您可以使用HTML5的pattern属性仅允许文本字段中的字母,如下所示:

<input type="text" name="fieldname1" pattern="[a-zA-Z]{1,}" required>
  

如何仅允许文本字段中的数字

Simillarly,让type属性number仅允许文本字段中的数字,如下所示:

<input type="number" name="fieldname2" required>

或者,使用pattern属性,如下所示:

<input type="text" name="fieldname2" pattern="[0-9]{1,}" required>

旁注:即使客户端上的这些输入字段会在某种程度上限制用户,但它们也不是可靠的,也是您唯一的防线。使用服务器端上的PHP Regex严格验证您的输入数据。

答案 2 :(得分:1)

  

您无需编写任何额外代码即可满足您的要求

以下示例仅允许使用字母(在任何序列中都是小的和大写的)。

<input id="my_id" type="text" pattern="[A-Za-z]*" class="validate">

或者您可以提供更多限制,例如只允许首字母为大写字母,并使用pattern="[A-Z][a-z]*"

小写字母进行扩展

要仅允许数字使用pattern="[0-9]*",并且只允许修正号码(比如10 )使用pattern="[0-9]{10}"

答案 3 :(得分:0)

仅限数字,这里是我与jQuery一起使用的代码段:

$('.content').keydown(function(e){
    var c = (e.charCode || e.keyCode);
    if(c<48 || c>57){
        return false;
    }else{
        return true;
    }
});

答案 4 :(得分:0)

注意:这仅适用于PHP

如果您想使用PHP在服务器端进行验证,可以使用:

function validate_string_spaces_only($string) {
    if(preg_match("/^[\w ]+$]/", $string)) {
        return true;
    } else {
        return false;
    }
}

仅包含字母,数字和可选空格的字符串

答案 5 :(得分:0)

使用此:

   function removeInvalidCharacters($input, $allowedChars = 'abcdefghijklmnopqrstuvwxyz 1234567890')
    {
        $str = '';
        for ($i   = 0; $i < strlen($input); $i++)
        {
            if (!stristr($allowedChars, $input[$i]))
            {
                continue;
            }

            $str .= $input[$i];
        }

        return $str;
    }