2012-06-05 28 views
0

如何創建一個方法來檢查電子郵件是否有效,如果驗證程序找到'@'符號? (輸入的文字只能是姓名或電子郵件地址)。jquery formvalidation引擎添加方法

+0

首先與服務器端腳本 – 2012-06-05 10:23:54

+0

所有經常做表單驗證你的意思是,如果輸入包含@然後檢查電子郵件驗證,否則檢查名稱驗證? –

+0

@PriyankPatel是的你的權利.. – mrrsb

回答

3
function checkMail(email){ 
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
    if (filter.test(email)) { 
     return true; 
    } 
    return false; 
} 

checkMail('[email protected]'); // return true or false if invalid. 

如果寫入有效的域,這將檢查電子郵件地址。

我@東西 - >無效
@ something.com - >無效
我@ .COM - >無效
[email protected] - >有效

Regular Expression Library -->

如果您想驗證與jQuery驗證引擎的郵件地址,只需添加:

data-validation-engine="validate[required,custom[email]]" 

輸入字段。


由於表單驗證引擎1.6.4,還有的可能性,以增加自己的功能進行驗證:http://www.position-absolute.com/news/form-validation-engine-1-6-4/

您可以用這個例子中替換代碼,那麼它應該工作:

<input value="" data-validation-engine="validate[required,funcCall[nameOrMail]]" class="text-input nameOrMail" type="text" name="req" id="req" /> 

JS(要在<head>):

jQuery(document).ready(function(){ 
    jQuery("#formID").validationEngine({ 
     "nameOrMail": { 
      "nname":"nameOrMail" 
     } 
    }); 
}); 

function checkMail(email){ 
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
    if (filter.test(email)) { 
     return true; 
    } 
    return false; 
} 

function nameOrMail(){ 
    if($(".nameOrMail").val().indexOf('@') >= 0){ 
     if(!checkMail($(".nameOrMail").val())) { 
      return "Please enter a valid mail address or name!"; 
     } 
    } else { 
     if($(".nameOrMail").val() === '') { 
      return "Please enter a valid mail address or name!"; 
     } 
    } 
} 

現場演示http://jsfiddle.net/4dUyX/

+0

即時通訊使用jQuery.validationEngine http://www.position-relative.net/creation/formValidator/我如何將此添加到formValidator引擎? – mrrsb

+0

我已將此添加到我的答案:) –

+0

[本文檔](http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/)很好。你會發現很多預定義的表達式。 –

0

使用分割功能,那麼你就不需要正則表達式

<script> 
function check(email){ 
    if (email.split("@").length>0) { 
     return true; 
    } 
    else return false; 
} 

check('[email protected]'); </script>