我正在尝试验证客户端的电子邮件地址列表。这些地址用逗号或分号分隔。它们通常如下所示:

'[email protected]; [email protected]; '
'[email protected], [email protected]'


我正在使用正则表达式拆分字符串(我知道如何分别验证每个电子邮件地址):

var separator = /[;,]+/;
var emails = value.split(separator);


我希望能够删除最后一个分隔符(如果有的话)。在python的服务器端,我正在做类似的事情:

data = data.rstrip(separator)
value_list = re.split(separator, data)


使用分隔符是所需的正则表达式。

我的问题是:如何在Javascript中执行此操作?更广泛地说,如果字符串的最后一个字符与regexp匹配,该如何删除?

最佳答案

可以使用正则表达式中$方法中的结束行.replace()符号来完成Rstrip。我还更改了您的正则表达式,以便它可以另外删除空格。

var separator = "[; ,]+",
    emails = value.replace(new RegExp(separator + "$"), "")
                  .split(new RegExp(separator));

console.log(emails);

10-07 21:10