面试题答案
一键面试- 验证函数逻辑:
- 首先获取文档中的
email
字段值。 - 然后使用正则表达式来匹配邮箱地址格式。一个常见的邮箱地址格式为:用户名@域名,其中用户名可以包含字母、数字、下划线、点等字符,域名由字母、数字、点组成,且至少有一个点分隔域名部分。
- 如果匹配成功,则说明邮箱格式正确,验证通过;否则验证失败。
- 首先获取文档中的
- 关键代码:
function(doc, oldDoc) {
var email = doc.email;
if (email) {
var re = /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/;
if (!re.test(email)) {
throw({forbidden: "Invalid email format"});
}
}
}
在上述代码中,/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/
是正则表达式。^
表示字符串开始,[a-zA-Z0-9_.+-]+
匹配用户名部分,@
匹配邮箱地址中的 @
符号,[a-zA-Z0-9-]+
匹配域名的主体部分,\.
匹配实际的点号(因为点号在正则中有特殊含义,所以需要转义),[a-zA-Z0-9-.]+
匹配域名的其余部分,$
表示字符串结束。如果 email
字段不符合这个正则表达式的格式,就抛出一个错误,验证失败。