From 9d7d3fefa02e653c31a4017137f6043c3e327cff Mon Sep 17 00:00:00 2001 From: Jermolene Date: Fri, 8 Feb 2019 15:59:07 +0000 Subject: [PATCH] Split operator: Remove empty strings when splitting See the discussion on 9b2d527; thanks @kookma --- core/modules/filters/strings.js | 2 +- editions/test/tiddlers/tests/test-filters.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/core/modules/filters/strings.js b/core/modules/filters/strings.js index c36e29e4e..a3b95dd9d 100644 --- a/core/modules/filters/strings.js +++ b/core/modules/filters/strings.js @@ -35,7 +35,7 @@ exports.concat = makeStringBinaryOperator( ); exports.split = makeStringBinaryOperator( - function(a,b) {return ("" + a).split(b);} + function(a,b) {return ("" + a).split(b).filter(function(str) {return !!str;});} ); exports.join = makeStringArrayOperator( diff --git a/editions/test/tiddlers/tests/test-filters.js b/editions/test/tiddlers/tests/test-filters.js index 931d9b80a..41755e920 100644 --- a/editions/test/tiddlers/tests/test-filters.js +++ b/editions/test/tiddlers/tests/test-filters.js @@ -368,7 +368,8 @@ describe("Filter tests", function() { expect(wiki.filterTiddlers("John Paul George Ringo +[lowercase[]]").join(",")).toBe("john,paul,george,ringo"); expect(wiki.filterTiddlers("John Paul George Ringo +[concat[y]]").join(",")).toBe("Johny,Pauly,Georgey,Ringoy"); expect(wiki.filterTiddlers("John Paul George Ringo +[split[]]").join(",")).toBe("J,o,h,n,P,a,u,l,G,e,o,r,g,e,R,i,n,g,o"); - expect(wiki.filterTiddlers("John Paul George Ringo +[split[e]]").join(",")).toBe("John,Paul,G,org,,Ringo"); + expect(wiki.filterTiddlers("[[John. Paul. George. Ringo.]] +[split[.]trim[]]").join(",")).toBe("John,Paul,George,Ringo"); + expect(wiki.filterTiddlers("John Paul George Ringo +[split[e]]").join(",")).toBe("John,Paul,G,org,Ringo"); expect(wiki.filterTiddlers("John Paul George Ringo +[join[ ]split[e]join[ee]split[ ]]").join(",")).toBe("John,Paul,Geeorgee,Ringo"); expect(wiki.filterTiddlers("[[ John ]] [[Paul ]] [[ George]] Ringo +[trim[]join[-]]").join(",")).toBe("John-Paul-George-Ringo"); });