我需要用一個變量來替換一個字符串中的事件,然後重建這個字符串。我想到了JavaScript的一些正則表達式魔法,它應該是一個單元。然而,在我的腦海中充滿了驚心動魄和激動之後,我伸出援助之手,向兄弟姐妹們伸出援助之手,他們敏銳的目光。javascript正則表達式 - 爲什麼我的抓取的字符串是錯的?
我試圖刪除[XYZ]如下面的代碼:
<!DOCTYPE html>
<html>
<body>
<p>Click the button to replace and switch:</p>
<p id="demo">{
"[[XYZ]]-ENGINES": "L300",
"[[XYZ]]-INTERIOR": "BURGCOMDDD",
"[[XYZ]]-BASEBOAT": "PUTT"
}
</p>
<button onclick="myFunction()">Try it</button>
<script>
function replaceAll(string, find, replace) {
return string.replace(new RegExp(find, 'g'), replace);
}
function myFunction() {
var str = document.getElementById("demo").innerHTML;
var replaceString = "\"[[XYZ]]?-*(.+)\": \"([A-Z0-9]+)\"?,*"
var replacementString = '$1/$2 = true,';
newstr = replaceAll(str, replaceString, replacementString)
alert(newstr)
}
</script>
</body>
</html>
但是,當我運行它返回:
{
[XYZ]]-ENGINES/L300 = true,
[XYZ]]-INTERIOR/BURGCOMDDD = true,
[XYZ]]-BASEBOAT/PUTT = true,
}
當它應該是:
{
ENGINES/L300 = true,
INTERIOR/BURGCOMDDD = true,
BASEBOAT/PUTT = true,
}
Wh?
是'[XYZ] - '是一個固定的前綴?如果是這樣,你可以用一個非常簡單的方法來完成。 – Dinei
是的,它是一個固定的前綴。順便說一下,其他答案都沒有奏效。 – jimijon