|
使用正则表达式JavaScript 验证电子邮件地址的最佳方法是什么?
3 o# o# M3 k! |, N2 N! c2 k5 C
( K* H+ T2 s% J 解决方案:
7 F* X0 ~# L$ u3 [ s% m8 d 使用正则表达式可能是最好的方法。
5 q) D, m) @( I0 W( M* a. A
3 r8 U( c: A4 D# R- 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 C# t. }- G: l
但请记住,不仅要依赖 JavaScript 验证。JavaScript 很容易被禁用。这也应该在服务器端进行验证。6 J Z/ s3 g9 e: I
以上操作为例:$ k: S) s1 Q' f/ G3 X: j: q
const 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);
2 M0 S9 n$ `6 C2 _- L4 K) N9 ] 这是html:
! o/ b7 R" a$ B* o' |! HEnter an email address:
' s7 W% u& z8 a& M, e/ }/ T! g |
|