Est-il possible de faire un JavaScript regex rejeter les correspondances nulles?
La méthode String.split () peut-elle être invitée à rejeter des valeurs nulles?
console.log("abcccab".split("c")); //result: ["ab", "", "", "ab"] //desired result: ["ab", "ab"]
–
Pendant que je testais ceci, je rencontrai une réponse partielle en cas d'accident:
console.log("abccacaab".split(/c+/)); //returns: ["ab", "a", "aab"]
Mais, un problème survient lorsque le match est au début:
console.log("abccacaab".split(/a+/)); //returns: ["", "bcc", "c", "b"] // ^^
Y a-t-il une réponse propre? Ou devons-nous simplement faire face à cela?
Ce n'est pas précisément une solution regex, mais un filtre en fera un travail rapide.
"abcccab".split("c").filter(Boolean);
Cela filtrera les valeurs ""
faux.
Ajustez les correspondances à partir des extrémités de la chaîne avant de vous diviser:
console.log("abccacaab".replace(/^a+|a+$/g, '').split(/a+/)); // ["bcc", "c", "b"]