[英]Javascript email validation failing on a valid email address?
我似乎無法獲得基本的JavaScript電子郵件驗證功能才能正常工作。 即使使用真實的電子郵件地址,它也會不斷返回該電子郵件地址無效。
有人可以指出正確的方向,因為我在任何其他類似的SO帖子上都找不到問題。 我不認為它是函數本身,但是也許我怎么稱呼它? 我已經在下面發布了代碼。
// E-mail validation via regular expression - taken from SO solution // Needs to be accessible for other Forms to use function isValidEmailAddress(emailAddress) { var pattern = new RegExp(/^((([az]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\ -\\豈-\﷏\ﷰ-\])+(\\.([az]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\ -\\豈-\﷏\ﷰ-\])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\ -\\豈-\﷏\ﷰ-\])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\ -\\豈-\﷏\ﷰ-\]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([az]|\\d|[\ -\\豈-\﷏\ﷰ-\])|(([az]|\\d|[\ -\\豈-\﷏\ﷰ-\])([az]|\\d|-|\\.|_|~|[\ -\\豈-\﷏\ﷰ-\])*([az]|\\d|[\ -\\豈-\﷏\ﷰ-\])))\\.)+(([az]|[\ -\\豈-\﷏\ﷰ-\])|(([az]|[\ -\\豈-\﷏\ﷰ-\])([az]|\\d|-|\\.|_|~|[\ -\\豈-\﷏\ﷰ-\])*([az]|[\ -\\豈-\﷏\ﷰ-\])))\\.?$/i); return pattern.test(emailAddress); }; // Validate Contact Form function validate_contact(evt) { var error = ''; // Set Veriables var email = document.getElementById("contact_email"); // Validate Other Fields Here // - Removed for Example - // Validate Email Address if (!isValidEmailAddress(email)) { error += '- Please enter a valid Email Address.\\n'; } // Show Error Notice if (error != '') { error = 'The form has not been completed correctly, please check the following:\\n\\n' + error; alert(error); evt.preventDefault(); // Stop the event } else { // Proceed } } // Get reference DOM elements var contact_form = document.getElementById("contact_form"); // Set up event - Contact Form Validation contact_form.addEventListener("submit", validate_contact); // Set up event - Other Form Validation //other_form.addEventListener("submit", validate_other);
<form id="contact_form" method="post" action="" autocomplete="off"> <input type="text" id="contact_email" name="email" value=""> <input type="submit" id="submit"> </form>
您應該進行一些基本的調試。 查看您正在測試的變量的內容。
var email = document.getElementById("contact_email");
email
的值是輸入元素 ,而不是輸入的文本。 為此,您需要閱讀其.value
屬性。
解決方案是添加“ .value”
var email = document.getElementById("contact_email").value;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.