簡體   English   中英

PHP - 驗證注冊表單

[英]PHP - Validating a registration form

如何使用php驗證第一個名稱僅包含az字符。 我現在有以下內容:

 if (empty($myFirstName)) {
    echo "<p>Please enter your first name!</p>";
else if(!preg_match("/^[a-zA-Z]$/", $myFirstName)){
    echo "Your first name can only contain letters!";
}

這是一個有效的代碼:

if (empty($myFirstName)) {
    echo "<p>Please enter your first name!</p>";}

else if(preg_match("/[^a-zA-Z]/", $myFirstName)){
    echo "Your first name can only contain letters!";
}

我對正則表達式進行了一些修改:我在組中添加了^ ,並刪除了錨點。

因此,您的正則表達式將匹配任何非字母的字符,並在匹配時顯示錯誤消息。

我強烈建議您至少在服務器端驗證用戶輸入,如果需要,請在客戶端驗證用戶輸入。

對於電子郵件驗證,html過濾器適用於客戶端。

在服務器端,您可以使用預先設置的PHP過濾器:

if(filter_var($email, FILTER_VALIDATE_EMAIL)){
    echo "email OK";
}

僅供參考,根據RFC2822標准,有一個正則表達式匹配的電子郵件:

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

可能你可以使用

if(! ctype_alpha($myFirstName) )
{
  //check for alphabetic inputs only
  echo "Your first name can only contain letters!";
}

Php手冊

你的if不正確。

!preg_match("/^[a-zA-Z]$/", $myFirstName)

只有$myFirstName not a single alpha character才會成立

要確保$myFirstName not any number of alpha characters ,請嘗試

!preg_match("/^[a-zA-Z]*$/", $myFirstName)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM