[英]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.