|
使用正则表达式JavaScript 验证电子邮件地址的最佳方法是什么?
6 Q1 ]- R& Y; A& o9 U& P
3 d+ B& \/ {! u0 u# s/ [ 解决方案:
; h' L% A3 u1 _2 o 使用正则表达式可能是最好的方法。
5 h9 Q3 y* \5 {+ Z) g; y
S# p& M& c* Z4 J- [# A9 e- 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;$ ]; D& A+ \, ]) P5 B1 l& D
但请记住,不仅要依赖 JavaScript 验证。JavaScript 很容易被禁用。这也应该在服务器端进行验证。
, Z$ K, i2 S$ @/ \3 j. `* N以上操作为例:
( \$ u" _5 u& K/ |' s% ]8 |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);
+ y$ u2 _( o5 D! i7 u 这是html:* Q" ?* }( u7 ~- W( ~; g4 A( Y; r
Enter an email address:
- z* u" P3 v+ H6 k |
|