簡體   English   中英

JavaScript表單驗證(僅檢查所有字母)

[英]JavaScript form validation (check for all letters only)

我正在嘗試創建一個函數,該函數將檢查字段是否為空白,僅包含字母和空格。 驗證該字段僅包含字母和空格似乎無法正常工作,因為該字段中放入的任何內容都會返回警報消息。

我想說:

如果名稱字段不是字母和空格,則顯示此警報“ ...”。 否則返回true。

 function validateForm() { var x = document.forms["newsletterForm"]["name"].value; if (x==null || x=="") { alert("Name must not be blank"); return false; } else if (x!==/^[A-Za-z ]+$/) { alert("Name contains invalid characters (letters and spaces only!)") return false; } else { return true; } 
  <form name="newsletterForm" action="#" onsubmit="return validateForm()" method="post"> <label for="name">Name*: </label><br> <input type="text" name="name" placeholder="Fill in your name"1> <br><br> <label for="email">E-mail*: </label><br> <input type="text" name="email" placeholder="Fill in your e-mail address"><br><br> <label for="comments">Comments (optional): </label> <br> <textarea rows="5" cols="20" name="comments" placeholder="Leave us a message"></textarea><br> <input type="submit" value="Submit"> </form> 

缺少}在端script和失蹤; else if

並使用regex only letter and space檢查only letter and space

 function validateForm() { var regex = new RegExp("^[a-zA-Z ]+$"); var x = document.forms["newsletterForm"]["name"].value; if (x == null || x == "") { alert("Name must not be blank"); return false; } else if (!regex.test(x)) { alert("Name contains invalid characters (letters and spaces only!)"); return false; } else { return true; } } 
 <form name="newsletterForm" action="#" onsubmit="return validateForm()" method="post"> <label for="name">Name*: </label><br> <input type="text" name="name" placeholder="Fill in your name"> <br><br> <label for="email">E-mail*: </label><br> <input type="text" name="email" placeholder="Fill in your e-mail address"><br><br> <label for="comments">Comments (optional): </label> <br> <textarea rows="5" cols="20" name="comments" placeholder="Leave us a message"></textarea><br> <input type="submit" value="Submit"> </form> 

嗨,您可以使用正則表達式

 var regexExp = /^[a-zA-Z\\s]*$/; function validateForm() { var x = document.forms["newsletterForm"]["name"].value; alert(x) if (x==null || x=="") { alert("Name must not be blank"); return false; } else if (!regexExp.test(x)) { alert("Name contains invalid characters (letters and spaces only!)") return false; } } 
 <form name="newsletterForm" action="#" onsubmit="return validateForm()" method="post"> <label for="name">Name*: </label><br> <input type="text" name="name" placeholder="Fill in your name"1> <br><br> <label for="email">E-mail*: </label><br> <input type="text" name="email" placeholder="Fill in your e-mail address"><br><br> <label for="comments">Comments (optional): </label> <br> <textarea rows="5" cols="20" name="comments" placeholder="Leave us a message"></textarea><br> <input type="submit" value="Submit"> </form> 

使用typeof

嘗試

if(x == null || typeof x !== 'string')
{
   //code here
}

空字符串不是要檢查的有效值。

我認為問題是您對!==的使用。 !==會尋找x與您的正則表達式對象之間的絕對匹配-也就是說, x是該正則表達式對象; 該表達式不匹配

那這個呢:

else if (! /^[A-Za-z ]+$/.test(x))

暫無
暫無

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

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