簡體   English   中英

JavaScript電子郵件驗證在有效的電子郵件地址上失敗?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM