【问题标题】:Multiple email validation using ko.observable使用 ko.observable 进行多个电子邮件验证
【发布时间】:2013-11-04 08:32:16
【问题描述】:

我是 durandal 应用程序的新手。目前我正在尝试验证从文本区域读取的多封电子邮件。

<textarea class="fullWidth" id="AddEmailSeparatedByComma"  rows="3" 
data-bind="value:emailList"></textarea>

我已经阅读了多封以“,”分隔的电子邮件,并且我正在存储

emailList = ko.observable("").extend({
 email: { message: "Please enter valid email address", params: true } 
});

我已提供上述验证消息。目前它只验证一封电子邮件,我不知道如何在这里使用自定义的正则表达式来验证用逗号分隔的多封电子邮件。任何帮助将不胜感激。

【问题讨论】:

    标签: regex validation knockout.js durandal email-validation


    【解决方案1】:

    添加另一个验证规则:

    ko.validation.rules['emaillist'] = {
        validator: function (val, validate) {
            if (!validate) return true;
            if (ko.validation.utils.isEmptyVal(val)) return true;
    
            var emailrule = ko.validation.rules['email'];
    
            var vals = val.split(/\s*,\s*/);
            for (var i = 0; i < vals.length; i++) {
                if (!emailrule.validator(vals[i], true)) {
                    return false;
                }
            }
    
            return true;
        },
        message: 'Please enter proper comma-separated email addresses'
    };
    ko.validation.addExtender('emaillist');
    

    Fiddle

    【讨论】:

    • 如果可以的话请给我一个小提琴
    • 用户输入正确格式后验证消息不会消失
    猜你喜欢
    • 2011-05-11
    • 2017-11-19
    • 2011-01-31
    • 2014-03-05
    • 1970-01-01
    • 2023-03-21
    • 2013-12-21
    相关资源
    最近更新 更多