2012-07-02 75 views
-1

我想驗證我的網站上的電子郵件地址,並且一直在嘗試編寫電子郵件驗證如何與JavaScript一起使用的演示代碼。我想要做的是將用戶輸入的電子郵件地址的值傳遞給validateEmail函數,然後在ID爲'result'的div中打印出'valid'或'invalid'。因爲我對JavaScript相對來說比較陌生,所以我不確定如何做到這一點,並想知道是否有人能夠向我展示如何做到這一點的例子?使用正則表達式驗證電子郵件地址

<head> 
<title>Practice</title> 

<script type="text/javascript"> 
function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 
    return re.test(email); 
} 
</script> 
</head> 
<body> 
    <form action="post" method="practice.php"> 
     e-mail: <input id="email" type="text" onblur="validateEmail(execute(document.getElementById('email').value))" /> 
     <div id="result"></div> 
    </form> 
</body> 
+0

是它JS或正在使用的正則表達式? –

+0

順便說一句,有很好的框架,可以讓你幾乎以聲明方式進行JS驗證。例如,有一個JQuery驗證插件。 – Kos

+0

僅供參考如果您對HTML5感到滿意,那麼'type =「email」'可能更合適。有關詳細信息,請參閱http://diveintohtml5.info/forms.html#type-email。 – stusmith

回答

1

所有你不需要使用execute方法,可以從this方面得到value首先:

validateEmail(this.value) 

然後修改功能打印結果:

function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 
    if(re.test(email)) { 
     document.getElementById('result').innerHTML = 'valid'; 
    } else { 
     document.getElementById('result').innerHTML = 'invalid'; 
    } 
} 
+0

非常感謝你。我已經失去了如何使用test()函數,以及如何從輸入字段傳遞值,這明確說明,並且工作!再次感謝! :) – AnchovyLegend

相關問題