Заменить все, чтобы очистить строку - PullRequest
0 голосов
/ 10 июля 2019

Я должен очистить свои данные, используя несколько replaceAll функций.

JSON.parse(data.replaceAll('{\'', '{"').replaceAll('\'}', '"}').replaceAll('\',\'', '","').replaceAll('\': \'', '": "').replace(/[\n\r]+/g, ' ').replaceAll("  ", " "));

Есть ли лучший способ сделать это?

Любые предложения будут оценены.

Заранее спасибо

1 Ответ

2 голосов
/ 10 июля 2019

Вы можете очистить код и определить свои замены в массиве пар и выполнить итерацию по нему, используя reduce

const replacements = [["{'", '{"'], ["'}", '"}'], ["','", '","'], ["': '", '": "'], ['\n', ' '], ['\r', ' '], ['  ', ' ']];

const data = `{' {'{'{' {' '}'} '}'}  ','',' ',' ': ' ': '': '': '             Hello\n\r\n\n\r\n\n\r\nWorld\n\r`;

const newData = replacements.reduce((a, [token, replacement]) => a.replace(new RegExp(token, 'g'), replacement), data);

console.log(newData);

Но, как упоминал Дин Тейлор, лучше использовать библиотеку для анализа нестандартных данных JSON (если это то, что вы пытаетесь сделать).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...