如何在給定字符串內替換雙反斜槓「\\」後面的單詞內容,只有一個反斜槓\?JS之後替換反斜槓
var a = "blah blah \\ \\ content:\"whiskey \\\\";
,使其顯示爲:
var a = "blah blah \\ \\ content:\"whiskey \\";
我嘗試沒有成功以下。具體的問題
a.replace(/content:*\\\\\"/g, "\\"));
如何在給定字符串內替換雙反斜槓「\\」後面的單詞內容,只有一個反斜槓\?JS之後替換反斜槓
var a = "blah blah \\ \\ content:\"whiskey \\\\";
,使其顯示爲:
var a = "blah blah \\ \\ content:\"whiskey \\";
我嘗試沒有成功以下。具體的問題
a.replace(/content:*\\\\\"/g, "\\"));
與其試圖用正則表達式解決整個問題,我只是在「內容」上打斷字符串,並在右半部分進行替換。
function fn(x) {
var i = x.indexOf("content");
return x.substr(0,i) + x.substr(i).replace(/\\\\/g, "\\");
}
// this evaluates true
fn("blah blah \\ \\ \\\\ content:\"whiskey \\\\\\\\ \\\\") ==
"blah blah \\ \\ \\\\ content:\"whiskey \\\\ \\"
a.replace(/(content:.*)\\\\/g, "$1\\");
,你必須在你的正則表達式一個"
,你需要.*
匹配任何東西,你需要把一組周圍的第一部分,因此您可以在以後檢索。
您確實需要多次運行這個操作,直到它完成了所有的替換操作,不幸的是,由於JavaScript匹配的方式。
這是有趣的,它必須運行多次。確保您運行所有替代品的最佳做法是什麼? –
絕對不知道。您可以繼續更換,直到字符串停止更改,或者等到字符串長度停止減少爲止。 – Xymostech
我認爲這是正確的答案。不幸的是,正則表達式並不總是解決方案。 :( – Xymostech
克里斯托弗,你是否主張拆分字符串,因爲它更簡單? –
拆分字符串更好,因爲那樣你就可以一次完成所有的替換操作。 – Xymostech