簡體   English   中英

刪除單引號字符轉義

[英]Remove single quote character escaping

我有這樣的字符串

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因為反斜杠轉義了單引號。

您的第一個(基於正則表達式)解決方案幾乎是完美的,只是缺少全局修飾符/\\\\'/g來替換所有匹配項,而不僅僅是第一個。 要查看實際效果,請嘗試以下操作:

> "This is\\' it"
"This is\' it"
> "This is\\' it".replace(/\\'/g,"'");
"This is' it"

試一下:

"This is\' it".replace(/\\(.?)/g, function (s, n1) {
    switch (n1) {
    case '\\':
        return '\\';
    case '0':
        return '\u0000';
    case '':
        return '';
    default:
        return n1;
    });

取自http://phpjs.org/functions/stripslashes:537

我認為您問題中的第一個選擇有效。 當您在JavaScript中將它作為字符串提及時,您需要轉義\\以便將其作為字符串而不是特殊字符讀取。 檢查此jsFiddle: http : //jsfiddle.net/T7Du4/2/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM