我创建了一个包含文本框的表单,我希望最终用户可以结束一个电子邮件地址(如果适用,还有多个电子邮件地址)。
我有一段代码可以很好地用于单个电子邮件:
if (event.value && !eMailValidate(event.value)) {
app.alert("Incorrect Address Format");
event.rc = false;
}
但是,考虑到这不会超过一封以分号分隔的电子邮件。任何人都可以阐明如何将其演变成“多个电子邮件验证器”吗?
谢谢,伙计。
贝
答案 0 :(得分:0)
您可以将event.value解析为字符串数组,然后使用eMailValidate函数验证数组中的每个字符串。在这种情况下,您希望在尝试解析之前确保event.value不为null或为空,否则您的代码将中断。这是一个例子(使用你的代码):
// Make sure event.value is not null or empty
if(event.value == null | event.value == ""){
app.alert("Incorrect Address Format");
event.rc = false;
}
// Split semicolon deliminated values into array
var emailArray = event.value.split(';');
// Get the array length
var len = emailArray.length;
// Loop through and validate
for (i = 0; i < len; i++){
if(!eMailValidate(emailArray[i].trim())){ // Trim removes leading-trailing spaces
app.alert("Incorrect Address Format");
event.rc = false;
}
}
这是一个jsfiddle,其中包含代码的工作示例。
[注意] - 原始示例中的问题是Split中的's'大写,$ .each循环特定于jQuery,而不是javascript。
希望这有用:)