|
使用正则表达式JavaScript 验证电子邮件地址的最佳方法是什么?
. L% P3 ^4 c5 ?
g/ |1 R g; n: N, r0 w$ v; J9 C 解决方案:
8 Q7 ]: ~+ t4 q) r1 S J 使用正则表达式可能是最好的方法。
/ s& O7 g0 b* R- [# |) m
8 l2 E" n& W2 `, Q0 E; R5 W6 a- const validateEmail = (email) => { return String(email) .toLowerCase() .match( ^(([^()[\]\\.,;:\s@"] (\.[^()[\]\\.,;:\s@"] )*)|(". "))@((\[[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,}))$}code]以下是接受 unicode 正则表达示例:[code]const re = /^(([^()[\]\.,;:\s@"] (\.[^()[\]\.,;:\s@"] )*)|(". "))@(([^()[\]\.,;:\s@"] \.) [^()[\]\.,;:\s@"]{2,})$/i;6 }3 I8 G) v7 O# R, m; Z
但请记住,不仅要依赖 JavaScript 验证。JavaScript 很容易被禁用。这也应该在服务器端进行验证。4 [# W* a- J! E6 r% `* d0 i
以上操作为例:
/ t9 L1 ]/ r6 h4 x* g7 |; dconst validateEmail = (email) => return email.match( ^(([^()[\]\\.,;:\s@"] (\.[^()[\]\\.,;:\s@"] )*)|(". "))@((\[[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,}))$};const validate = () => { const $result = $('#result'); const email = $('#email').val(); $result.text('); if (validateEmail(email)) $result.text(email ' is valid $result.css('color','green }else $result.text(email ' is not valid $result.css('color','red } return false;}$('#email').on('input',validate);
% g; n$ N2 V7 G 这是html:
/ Q# n: m4 _- E4 f0 p( q k: M% D* aEnter an email address:
- m! a4 Y7 X9 ^* j- B |
|