[英]How to validate email field in javascript?
這是我用於表單驗證的腳本:
<script language="JavaScript">
function formCheck(formobj){
var fieldRequired = Array("Name", "Email", "Phone", "comments");
var fieldDescription = Array("Name", "Email", "Phone", "Comments");
var alertMsg = "Please complete the following fields:\n";
var l_Msg = alertMsg.length;
for (var i = 0; i < fieldRequired.length; i++){
var obj = formobj.elements[fieldRequired[i]];
if (obj){
switch(obj.type){
case "select-one":
if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
alertMsg += " - " + fieldDescription[i] + "\n";
}
break;
case "select-multiple":
if (obj.selectedIndex == -1){
alertMsg += " - " + fieldDescription[i] + "\n";
}
break;
case "text":
case "textarea":
if (obj.value == "" || obj.value == null){
alertMsg += " - " + fieldDescription[i] + "\n";
}
break;
default:
}
if (obj.type == undefined){
var blnchecked = false;
for (var j = 0; j < obj.length; j++){
if (obj[j].checked){
blnchecked = true;
}
}
if (!blnchecked){
alertMsg += " - " + fieldDescription[i] + "\n";
}
}
}
}
if (alertMsg.length == l_Msg){
return true;
}else{
alert(alertMsg);
return false;
}
}
// -->
</script>
<form onsubmit="return formCheck(this);" action="/capture.weblead" method="post">
First Name: <input type=text name="FirstName" size="25"><br>
Last Name: <input type=text name="LastName" size="25"><br>
<input type=submit value="Submit Form">
</form>
它工作得很好,除了它沒有驗證真實的電子郵件地址。 如何改變這種形式呢?
該腳本不能包含任何美元符號,否則Tomcat(我的服務器環境)崩潰。
你可以在javascript中使用正則表達式
function is_email(email){
var emailReg = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
return emailReg.test(email); }
我建議你使用jQuery和Validation插件:
http://bassistance.de/jquery-plugins/jquery-plugin-validation/
它靈活,可靠且易於使用。
這是一個快速而骯臟的解決方案。 修改emailRegexp
變量的值以滿足您的需要。 這里已經有一些例子了。 正如Pointy指出的那樣,假陽性通常比假陰性更好。
function formCheck(formobj){
var fieldRequired = Array("Name", "Email", "Phone", "comments");
var fieldDescription = Array("Name", "Email", "Phone", "Comments");
var alertMsg = "Please complete the following fields:\n";
var emailRegexp =/@/;
var l_Msg = alertMsg.length;
for (var i = 0; i < fieldRequired.length; i++){
var obj = formobj.elements[fieldRequired[i]];
if (obj){
switch(obj.type){
case "select-one":
if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
alertMsg += " - " + fieldDescription[i] + "\n";
}
break;
case "select-multiple":
if (obj.selectedIndex == -1){
alertMsg += " - " + fieldDescription[i] + "\n";
}
break;
case "text":
case "textarea":
if ( obj.value == "" ||
obj.value == null ||
( fieldRequired[i] == "Email" && !obj.value.match(emailRegexp) ))
{
alertMsg += " - " + fieldDescription[i] + "\n";
}
break;
default:
}
if (obj.type == undefined){
var blnchecked = false;
for (var j = 0; j < obj.length; j++){
if (obj[j].checked){
blnchecked = true;
}
}
if (!blnchecked){
alertMsg += " - " + fieldDescription[i] + "\n";
}
}
}
}
if (alertMsg.length == l_Msg){
return true;
}else{
alert(alertMsg);
return false;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.