如何在JavaScript中去除字符串双引号?代码报错求助
问题分析与修复方案
我来帮你排查一下问题哈,你的代码有两个关键错误导致了报错和功能失效,一步步给你拆解:
1. 字符串语法错误(直接触发报错)
你定义productName的代码:
var productName = "300" Table";
这里的第二个双引号"会提前结束字符串,后面的Table"就变成了无意义的语法片段,直接触发语法错误。
解决方法有两种:
- 转义字符串内部的双引号:用
\标记内部双引号为字符串的一部分var productName = "300\" Table"; - 用单引号包裹整个字符串:内部双引号无需转义,写法更简洁
var productName = '300" Table';
2. replace方法参数顺序错误(导致无法去除双引号)
你的代码里写了:
var newTemp = productName.replace('"', /'/g);
这里完全搞反了replace的参数规则:replace的第一个参数是要匹配的目标内容(字符串或正则表达式),第二个参数是替换后的内容(字符串或函数)。
如果你想去除所有双引号,应该把双引号匹配出来,替换成空字符串:
var newTemp = productName.replace(/"/g, '');
如果你是想把所有双引号替换成单引号,则写成:
var newTemp = productName.replace(/"/g, "'");
注意要用全局正则/"g,否则只会替换第一个匹配到的双引号。
修正后的完整代码
// 先正确定义字符串 var productName = '300" Table'; console.log(productName); // 输出: 300" Table // 去除所有双引号(或替换成单引号,按需修改) var newTemp = productName.replace(/"/g, ''); console.log(newTemp); // 输出: 300 Table var requestData = JSON.stringify({ 'product_name': productName, 'page_url': newTemp }); var obj = JSON.parse(requestData); console.log(obj); // 输出: { product_name: '300" Table', page_url: '300 Table' }
内容的提问来源于stack exchange,提问作者Raghul Rajendran
相关产品推荐
相关产品推荐

