我有一個字符串在字符串的極端替換單引號雙引號只有
var myString = "[{"portal.home":"Home"},{"displaytag.tracking.id":"Item ID"}]";
我想要的輸出
myString = '[{"portal.home":"Home"},{"displaytag.tracking.id":"Item ID"}]';
我有一個字符串在字符串的極端替換單引號雙引號只有
var myString = "[{"portal.home":"Home"},{"displaytag.tracking.id":"Item ID"}]";
我想要的輸出
myString = '[{"portal.home":"Home"},{"displaytag.tracking.id":"Item ID"}]';
您可以用.slice()
做到這一點:
var newString = "'" + myString.slice(1, -1) + "'";
或與正則表達式:
var newString = myString.replace(/^"|"$/g, "'");
這將刪除括號。 OP似乎對字符串文字標記本身有問題。 –
@DavidHedlund:我不確定'myString'實際上是一個JavaScript變量還是隻是說「我的字符串是」的一種方式。沒有任何澄清,我無法確定。 – Blender
確實。這是一個複雜的問題。我敢打賭,它的根源在於誤解而非實際問題。 –
如果使用雙引號創建一個字符串,則不能在其中包含未轉義的雙引號。
你不能寫
var myString = "A "B" C";
這將是一個語法錯誤。然而,
var myString = "A \"B\" C";
是完全一樣的事情:
var myString = 'A "B" C';
所得的myString
值將是正好相同。這不像第一個例子將在最終字符串中包含任何轉義標記。逃生只是在那裏幫助創建字符串,在這兩種情況下這都是A "B" C
;在記錄時通常用雙引號括起來,表示該類型是一個字符串。
所以,如果你運行console.log(myString);
它會說"A "B" C"
,但值myString
簡直是A "B" C
。這只是開發人員工具代表字符串的結果。字符串本身並沒有說它是用雙引號創建的。開發人員工具同樣可以用特殊顏色記錄該值,但用雙引號括起來恰好是表示字符串的傳統方式。
+1真棒解釋。只需添加:這些「外部」引號不會影響JSON(正如您所說的,只要您做適當的轉義,它們就會返回完全相同的字符串值),實際上,外部引號不應該是字符串值的一部分否則會導致格式錯誤的JSON。 –
你試過嗎? – Blender
您知道在您發佈的示例中,引號不是字符串的一部分,對吧? –
是與正則表達式,但它取代了所有的雙引號。問題是......我不知道雙引號中會包含什麼內容。我來自後端 – Bhuvan