javascript - ReplaceAll 以清理字符串

标签 javascript jquery regex str-replace replaceall

我必须使用一些 replaceAll 函数来清理我的数据。

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

有更好的方法吗?

如有任何建议,我们将不胜感激。

提前致谢

最佳答案

您可以清理代码并在成对的数组中定义替换,并使用 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);

但正如 Dean Taylor 所提到的,最好使用库来解析非标准 JSON 数据(如果这就是您想要做的)。

关于javascript - ReplaceAll 以清理字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56962433/

相关文章:

javascript - 在 Mongoose 中对嵌套子文档进行排序和分组

javascript - 在 .map 函数中使用 react Prop

php - MySQL 正则表达式忽略空格

c# - 重复匹配一个模式并返回所有结果

javascript - 如何从一个函数访问另一个函数的变量

javascript - JQuery 代码在 jsfiddle 中正常工作,但在浏览器中即使使用 $(window).load(function()) 也不能正常工作

javascript - 如果用户两次插入错误的凭据,Jquery 登录功能将不起作用

c# - Ajax jquery 传递多个参数 web 服务

mysql - 使用jquery ajax将输入文本框绑定(bind)到mysql数据

javascript - 将输入字段中的字符限制为一组字符