MST
星途 面试题库

面试题:CouchDB设计文档验证函数中如何验证特定字段格式

在CouchDB的设计文档验证函数里,假设文档中有一个表示邮箱地址的字段 'email',请编写验证函数确保 'email' 字段的格式是符合邮箱规范的。说明验证函数的逻辑和关键代码。
44.5万 热度难度
数据库CouchDB

知识考点

AI 面试

面试题答案

一键面试
  1. 验证函数逻辑
    • 首先获取文档中的 email 字段值。
    • 然后使用正则表达式来匹配邮箱地址格式。一个常见的邮箱地址格式为:用户名@域名,其中用户名可以包含字母、数字、下划线、点等字符,域名由字母、数字、点组成,且至少有一个点分隔域名部分。
    • 如果匹配成功,则说明邮箱格式正确,验证通过;否则验证失败。
  2. 关键代码
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 字段不符合这个正则表达式的格式,就抛出一个错误,验证失败。