javascript - 格式化并验证文本区域中的多个电子邮件地址

标签 javascript

我需要删除空格并用分号分隔。完成后,在传递到数据库之前验证电子邮件地址是否采用正确的电子邮件格式。像这样的事情:

“tom@yahoo.com;bob@yahoo.com”

enter image description here

最佳答案

这是我在 JavaScript 中使用 jQuery Validate 所做的:

$.validator.addMethod('emailList', function(value, element) {
    if (this.optional(element)) return true;

    var flag = true;
    var addresses = value.replace(/\s/g,'').split(',');
    for (i = 0; i < addresses.length; i++) {
        flag = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(addresses[i]);
    }
    return flag;
}, '');

您可以将分割更改为 ;(如果这是您的分隔符)。

关于javascript - 格式化并验证文本区域中的多个电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8671372/

相关文章:

html中的javascript代码到js文件

javascript - 在返回方法中访问查询

javascript - d3 可折叠树 : how to color only the label of clicked node?

javascript - 在 Google 电子表格中查看数据,其中数据来自外部

javascript - 如何对数据表中的容量列进行排序

javascript - 如何在 next/js 中整齐地导入多张图片?

javascript - Accordion 显示以查找下一个 div

javascript - `uri`参数到 `openUri()`必须是字符串,得到 "undefined"

javascript - 更新嵌套 Angular 2 组件中的数字字段值

javascript - 如何使用 Vuex 创建模块并使用 mapState() 获取数据