Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery验证-CSV电子邮件正则表达式,不带尾随逗号_Jquery_Regex - Fatal编程技术网

jQuery验证-CSV电子邮件正则表达式,不带尾随逗号

jQuery验证-CSV电子邮件正则表达式,不带尾随逗号,jquery,regex,Jquery,Regex,下面是我在.validate中进行自定义验证的代码。我想允许用户输入用逗号分隔的电子邮件地址,但我的正则表达式不允许使用逗号结尾 aaa@foo.com, bbb@bar.com=正常 aaa@foo.com,bbb@bar.com=正常 aaa@foo.com,=不正常(注意此处也是尾随空格) aaa@foo.com,=不正常 但我的问题是,在下面的所有这些都是可以的 $.validator.addMethod('csvEmail', function (value, element) {

下面是我在.validate中进行自定义验证的代码。我想允许用户输入用逗号分隔的电子邮件地址,但我的正则表达式不允许使用逗号结尾

aaa@foo.com, bbb@bar.com
=正常

aaa@foo.com,bbb@bar.com
=正常

aaa@foo.com,
=不正常(注意此处也是尾随空格)

aaa@foo.com,
=不正常

但我的问题是,在下面的所有这些都是可以的

$.validator.addMethod('csvEmail', function (value, element) {
    return this.optional(element) || /^((([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))+(,|, |$))*$/.test(value);
}, "Please enter a valid email address or multiple valid addresses separated by a comma.");
$.validator.addMethod('csvEmail',函数(值,元素){
返回此.optional(element)| |/^(([^()\[\]\\,;:\s@“]+(\.[^()\[\]\,;:\s@“]+)*)(“+”)((\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]}.[1,3}.[0-9]}.[1,3}.+++]1,3}.[1,3}.]测试值])/([a-zA 0-0-9]+]1242],[1,3}.-+];
},“请输入一个有效的电子邮件地址或多个用逗号分隔的有效地址。”);

您的
regex
表达式的问题是您正在匹配第一列
aaa@foo.com
以及
,(空格)
(行尾)
。然后,使用
*
检查它是否重复
0
或更多次

但是,此处不能使用
*
+
符号。您希望它始终与
2
匹配。因此,您希望将
regex
修复为以下内容:

^((([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))+(,|, |$)){2}$
aaa@foo.com, bbb@bar.com
aaa@foo.com,bbb@bar.com
aaa@foo.com, 
aaa@foo.com,
aaa@foo.com, bbb@bar.com
aaa@foo.com,bbb@bar.com

无论如何,两者都会返回所需的结果,如下所示:

^((([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))+(,|, |$)){2}$
aaa@foo.com, bbb@bar.com
aaa@foo.com,bbb@bar.com
aaa@foo.com, 
aaa@foo.com,
aaa@foo.com, bbb@bar.com
aaa@foo.com,bbb@bar.com
它们只强调以下几点:

^((([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))+(,|, |$)){2}$
aaa@foo.com, bbb@bar.com
aaa@foo.com,bbb@bar.com
aaa@foo.com, 
aaa@foo.com,
aaa@foo.com, bbb@bar.com
aaa@foo.com,bbb@bar.com
如果您希望自己尝试,请在两者之间更改
regex
。他们都工作