在现有找到的邮箱表达式不够满意的情况下,自己写了一个。
特性如下:
- 邮箱首字符和末尾字符必须为字母或数字,邮箱名可以全是字母或数字,或者是两者的组合;
- 连字符"-"、下划线"_" 和英文句号点".",仅能放在字母或数字中间,且不能连续出现(即其单个符号的左右只能是字母或数字);
- 域名可以带连字符"-", 且可以是多级域名 ,还可以有多个域名后缀;
- 不区分大小写;
- 不限定邮箱字符串的具体长度。
代码如下:
1 var emailReg=/^[\da-z]+([\-\.\_]?[\da-z]+)*@[\da-z]+([\-\.]?[\da-z]+)*(\.[a-z]{2,})+$/i; 2 3 console.log(emailReg.test('_abc@sample.com')); // false 4 console.log(emailReg.test('a23..bc@sample.com')); // false 5 console.log(emailReg.test('a23.-bc@sample.com')); // false 6 console.log(emailReg.test('a23.bc.@sample.com')); // false 7 console.log(emailReg.test('a23.bc@@sample.com')); // false 8 console.log(emailReg.test('2abc@sample.com')); // true 9 console.log(emailReg.test('2345@sample.com')); // true 10 console.log(emailReg.test('a2-3.b_c3@sample.com')); // true 11 console.log(emailReg.test('a2-3.b_c3@sam-ple.com.CN')); // true