是否可以使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>
答案 0 :(得分:25)
这不是一个正则表达式的解决方案,但过滤器可以快速完成它。
"abcccab".split("c").filter(Boolean);
这将过滤掉虚假的""
值。
答案 1 :(得分:1)
在拆分之前修剪字符串末尾的匹配项:
console.log("abccacaab".replace(/^a+|a+$/g, '').split(/a+/));
// ["bcc", "c", "b"]