|
@@ -7,15 +7,21 @@
|
|
|
* @param {string} [separator=";"] Separator to split and count it`s occurance
|
|
* @param {string} [separator=";"] Separator to split and count it`s occurance
|
|
|
* @returns {[string[], number]}
|
|
* @returns {[string[], number]}
|
|
|
*/
|
|
*/
|
|
|
-function countAndSlice(input: string, separator: string = ";"): [string[], number] {
|
|
|
|
|
|
|
+function countAndSlice(input: string, separator: string = ";", escapeCharacter: string = "\\"): [string[], number] {
|
|
|
let buff: string = "";
|
|
let buff: string = "";
|
|
|
let arr: string[] = [];
|
|
let arr: string[] = [];
|
|
|
let counter: number = 0;
|
|
let counter: number = 0;
|
|
|
|
|
+ let escape = false;
|
|
|
for (let char of input) {
|
|
for (let char of input) {
|
|
|
- if (char == separator) {
|
|
|
|
|
|
|
+ if (escape) {
|
|
|
|
|
+ buff = buff.concat(char);
|
|
|
|
|
+ escape = false;
|
|
|
|
|
+ } else if (char == separator) {
|
|
|
counter++;
|
|
counter++;
|
|
|
arr.push(buff);
|
|
arr.push(buff);
|
|
|
buff = "";
|
|
buff = "";
|
|
|
|
|
+ } else if (char == escapeCharacter) {
|
|
|
|
|
+ escape = true;
|
|
|
} else {
|
|
} else {
|
|
|
buff = buff.concat(char);
|
|
buff = buff.concat(char);
|
|
|
}
|
|
}
|