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'
是一个单引号字符串,里面有一个单引号,当读取字符串时反斜杠“消失”。是的,你是对的,我更新了我的问题,现在一切都有意义了。