题解 | #邮箱字符串判断#
邮箱字符串判断
http://www.nowcoder.com/practice/c72b2b5472704d4a98597cb74b0257a7
整个解体思路是比较简单的。关于在于邮箱的正则
上面这个正则是我一直在用的一个正则,但是在提交的时候,提示了通过率为6/7
仔细看了一下没有通过了案例,发现需要在前面加上\.
最终的正则为:/^[\w\.]+@[\da-z\.-]+\.([a-z]+|[\u4E00-\u9FFF]+)$/
function isAvailableEmail(sEmail) {
let reg=/^\w+@[\da-z\.-]+\.([a-z]+|[\u4E00-\u9FFF]+)$/
return reg.test(sEmail);
}
下面将这个正则,按照我的理解来给大家分析一下。
主要通过 @ 和. 将整体分为三部分:
1、^\w + : ^ 代表以后面的开头
\w代表数字+字母+下划线
+ 代表匹配前面的表达式一次或多次
2、[ \da-z\.-]+ : [ ] 代表中括号表达式的开始
\d 代表[0-9]的数字,取其一
a-z 代表小写字母,取其一
\. 代表匹配 .
- 代表匹配 –
3、([a-z]+|[\u4E00-\u9FFF ]+)$: ()代表子表达的开始
| 代表任选其一
\u 代表Unicode编码
4E00-9FFF为中文字符编码区
$ 代表以前面的表达式结束
希望对你们有所帮助!