Javascript 删除单引号字符转义
我有一根这样的绳子Javascript 删除单引号字符转义,javascript,Javascript,我有一根这样的绳子 This is\' it This is' it 我希望它看起来像这样 This is\' it This is' it 我所做的一切似乎都不管用 > "This is\' it".replace(/\\'/,"'"); 'This is\' it' > "This is\' it".replace("'",/\\'/); 'This is/\\\\\'/ it' > "This is\' it".replace("\'","'"); 'This i
This is\' it
This is' it
我希望它看起来像这样
This is\' it
This is' it
我所做的一切似乎都不管用
> "This is\' it".replace(/\\'/,"'");
'This is\' it'
> "This is\' it".replace("'",/\\'/);
'This is/\\\\\'/ it'
> "This is\' it".replace("\'","'");
'This is\' it'
> "This is\' it".replace("'","\'");
'This is\' it'
更新:这有点难理解,但我的示例字符串在一个数组中,类似于
> ["hello world's"]
[ 'hello world\'s' ]
它会自动发生如下情况:
> var a = ["hello world's"]
undefined
> a
[ 'hello world\'s' ]
> a[0]
'hello world\'s'
> console.log(a[0])
hello world's
undefined
> console.log(a)
[ 'hello world\'s' ]
undefined
>
试一试:
"This is\' it".replace(/\\(.?)/g, function (s, n1) {
switch (n1) {
case '\\':
return '\\';
case '0':
return '\u0000';
case '':
return '';
default:
return n1;
});
取自没有一个测试字符串实际包含反斜杠。每次输入的字符串是:
这是'it
,因为反斜杠转义单引号
您的第一个(基于regex的)解决方案几乎是完美的,只是缺少全局修饰符/\\'/g
来替换所有匹配项,而不仅仅是第一个。要查看此操作,请尝试以下操作:
> "This is\\' it"
"This is\' it"
> "This is\\' it".replace(/\\'/g,"'");
"This is' it"
我认为你问题中的第一个选择是可行的。当您在JavaScript中将其称为字符串时,需要转义
\
,以便将其作为字符串而不是特殊字符读取。
检查此JSIDLE:
console.log(“这是它”)
为我返回这是它。“这是它”。替换(/\\'/g,”)
返回“这是\'it'
。我的字符串实际上来自JSON,并且是“This is\'it”
。如果这是JSON字符串,那么应该通过解析JSON自动取消其范围'This is\'it'
是一个单引号字符串,里面有一个单引号,当读取字符串时反斜杠“消失”。是的,你是对的,我更新了我的问题,现在一切都有意义了。