Javascript正则表达式拆分拒绝null

时间:2013-05-22 20:47:35

标签: javascript regex null split

是否可以使JavaScript正则表达式拒绝空匹配?

可以告诉String.split()方法拒绝空值吗?

console.log("abcccab".split("c"));
//result: ["ab", "", "", "ab"]
//desired result: ["ab", "ab"]

-

在我测试时,我偶然发现了事故的部分答案:

console.log("abccacaab".split(/c+/));
//returns: ["ab", "a", "aab"] 

但是,当比赛开始时会出现问题:

console.log("abccacaab".split(/a+/));
//returns: ["", "bcc", "c", "b"]
//          ^^

有一个干净的答案吗?或者我们只需处理它?<​​/ p>

2 个答案:

答案 0 :(得分:25)

这不是一个正则表达式的解决方案,但过滤器可以快速完成它。

"abcccab".split("c").filter(Boolean);

这将过滤掉虚假的""值。

答案 1 :(得分:1)

在拆分之前修剪字符串末尾的匹配项:

console.log("abccacaab".replace(/^a+|a+$/g, '').split(/a+/));

// ["bcc", "c", "b"]