From c9e062b3ff9ce740116f28d31d7988fe3f02d2a0 Mon Sep 17 00:00:00 2001 From: Katsuma Narisawa Date: Fri, 16 Jul 2021 15:47:27 +0900 Subject: [PATCH 1/2] Delete trailing new line character from pasted text --- src/matrix.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/matrix.ts b/src/matrix.ts index c0fb61c3..c29cdc50 100644 --- a/src/matrix.ts +++ b/src/matrix.ts @@ -154,9 +154,10 @@ export function split( csv: string, transform: (value: string) => T, horizontalSeparator = "\t", - verticalSeparator: string | RegExp = /\r\n|\n|\r/ + verticalSeparator = /\r\n|\n|\r/ ): Matrix { return csv + .replace(new RegExp('(' + verticalSeparator.source + ')$'), '') // delete trailing new line character .split(verticalSeparator) .map((row) => row.split(horizontalSeparator).map(transform)); } From acc08b90c1d9e95d2aa04dd19eb6ec80ddd3042a Mon Sep 17 00:00:00 2001 From: Katsuma Narisawa Date: Sat, 21 Aug 2021 10:50:47 +0900 Subject: [PATCH 2/2] Allow string verticalSeparator --- src/matrix.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/matrix.ts b/src/matrix.ts index c29cdc50..a0304ecc 100644 --- a/src/matrix.ts +++ b/src/matrix.ts @@ -154,11 +154,12 @@ export function split( csv: string, transform: (value: string) => T, horizontalSeparator = "\t", - verticalSeparator = /\r\n|\n|\r/ + verticalSeparator: string | RegExp = /\r\n|\n|\r/ ): Matrix { + const verticalSeparatorRegExp = typeof (verticalSeparator) === 'string' ? new RegExp(verticalSeparator) : verticalSeparator return csv - .replace(new RegExp('(' + verticalSeparator.source + ')$'), '') // delete trailing new line character - .split(verticalSeparator) + .replace(new RegExp('(' + verticalSeparatorRegExp.source + ')$'), '') // delete trailing new line character + .split(verticalSeparatorRegExp) .map((row) => row.split(horizontalSeparator).map(transform)); }