基于多个分隔符计数项目

Counting items based on multiple separators?

本文关键字:项目 分隔符 于多个      更新时间:2023-09-26

我需要计算用户输入的电子邮件地址的数量。这些地址可以由以下任意一个分隔:

  • 逗号后面没有空格-a@example.com,c@example.com.com
  • 逗号后面跟着任意数量的空格(即某人可能有一个逗号后面跟着3个空格或只有1个空格)-a@example.com, c@example.com.com
  • 仅空白-a@example.com c@example.com.com
  • 新建线路

有什么好方法可以清理并可靠地统计地址?

我认为常规的'olejavascript可以处理这个问题,但值得一提的是,我使用的是jQuery。

最简单的方法是用空格替换所有逗号,然后根据空格拆分字符串。不需要条件。

这里有一个例子。

var emails = input.split(/['s,]+/);

FIDDLE

var str="YOUR_STR",
    arr = [];
if( str.indexOf(',') >= 0 ) {
   // if comma found then replace all extra space and split with comma
   arr =  str.replace(/'s/g,'').split(',');
} else {
   // if comma not found
   arr = str.split(' ');
}
var l = "a@example.com,c@example.com.com a@example.com, c@example.com.com a@example.com c@example.com.com";
var r = l.split(/ |, |,/);

正则表达式使这变得相当容易。

如果更改了多个空格,则可以稍微更改regex。

var r = l.split(/ +|, +|,/);