gpt4 book ai didi

javascript - javascript 字符串转义引号

转载 作者:行者123 更新时间:2023-11-28 14:38:28 25 4
gpt4 key购买 nike

我有一个带有这种字符串的变量:4.5"x8.5"x0.5"

我找到了很多关于如何转义引号的答案,所以我编写了这个函数:

function replaceQuotesChars (str)
{
var s = str.trim();

// s.replace('"','"');

// s.replace('"','\\"');

// s.replace(/\"/g,'\\"');

s.replace(/\"/g,'"');

return s;
};

但是这些都不能帮助我转义引号,因为我得到的字符串与提交给函数的字符串相同。

我将该变量与 stringify 对象一起保存到数据库中,因此当我解析回字符串时,我会收到错误。

我做错了什么?请帮助我。

最佳答案

.replace (或者实际上任何其他字符串操作方法)之后,会返回一个新字符串,因为字符串是 "immutable" objects (一旦创建就无法修改)。您的代码假设操作“就地”发生。您需要捕获新字符串(顺便说一下,您确实使用了 .trim() 操作)。

在下面的代码中:

  1. 首先在 str 上调用 .trim(),它复制 str 中的字符串,但不包含前导空格和尾随空格,然后返回新字符串。
  2. 在该新字符串上,调用 .replace(),它会复制 trim 后的字符串,但替换字符,然后返回一个新字符串。
  3. 最终的字符串就是函数返回的内容。

function replaceQuotesChars (str, delimeter) {
// Each string operation returns a new string. Take that final
// string and return it
return str.trim().replace(/\"/g, delimeter);
};

console.log(replaceQuotesChars('10.5" x 4.75"', """));
console.log(replaceQuotesChars('10.5" x 4.75"', "\'"));
console.log(replaceQuotesChars('10.5" x 4.75"', "\""));

关于javascript - javascript 字符串转义引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49058055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com