Javascript 基于多个分隔符计算项目?
我需要计算用户输入的电子邮件地址数。这些地址可由以下任何一项分隔:Javascript 基于多个分隔符计算项目?,javascript,jquery,regex,split,Javascript,Jquery,Regex,Split,我需要计算用户输入的电子邮件地址数。这些地址可由以下任何一项分隔: 逗号后跟无空格-a@example.com,c@example.com.com 逗号后跟任意数量的空格(例如,某人可能有一个逗号后跟3个空格或仅1个)-a@example.com, c@example.com.com 仅限空白-a@example.com c@example.com.com 新线 有什么好方法可以清理这些数据并可靠地计算地址 我假设普通的ole javascript可以处理这个问题,但为了它的价值,我使用j
- 逗号后跟无空格-
a@example.com,c@example.com.com
- 逗号后跟任意数量的空格(例如,某人可能有一个逗号后跟3个空格或仅1个)-
a@example.com, c@example.com.com
- 仅限空白-
a@example.com c@example.com.com
- 新线
我假设普通的ole javascript可以处理这个问题,但为了它的价值,我使用jQuery。最简单的方法就是用空格替换所有逗号,然后根据空格分割字符串。不需要条件
举个例子。最简单的方法就是用空格替换所有逗号,然后根据空格分割字符串。不需要条件
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 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 r = l.split(/ +|, +|,/);
正则表达式使这相当容易
如果更改了多个空格,则可以稍微更改正则表达式
var r = l.split(/ +|, +|,/);
这不是字符串包含的电子邮件地址数。。。这就是字符串包含的
空格|逗号
。您还可以计算@
的数量。这也不正确。这不是字符串包含的电子邮件地址数。。。这就是字符串包含的空格|逗号
。您还可以计算@
的数量。这也不正确。+1对于贪婪模式,在所有空格上拆分将导致空数组元素,因此电子邮件地址计数错误当然,这是我的答案。我刚刚添加了对贪婪匹配信息的解释(如果OP需要它,以及为什么他不应该选择/[\s,]/
,更不用说/[124;,/
,因为开头和结尾的空格都算电子邮件,在拆分之前添加这个来修剪字符串:输入。替换(/^\s+$/g),”)。拆分(/[\s,]+/);
+1对于贪婪模式,在所有空格上拆分将导致空数组元素,因此电子邮件地址计数错误当然,这是我的答案。我刚刚添加了贪婪匹配信息的解释(以防OP需要它,以及为什么他不应该选择/[\s,]/
,更不用说/|、|、/
,因为开头和结尾的空格都算是电子邮件,请在拆分之前添加此项以修剪字符串:input.replace(/^\s++$/g,”)。拆分(/[\s,]+/);