2

我是 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 } 
});

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

4

1 回答 1

6

添加另一个验证规则:

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');

小提琴

于 2013-10-25T09:53:02.453 回答