我知道有很多類似的問題,但這個問題可能略有不同。
我有一系列span標簽,每個標簽都包含唯一的 ID,它們都是 JSON 字串的一部分。然后,我嘗試用空字串替換所有 Id,知道它們包含動態的數字。例如,考慮以下 JSON 物件陣列dataArray
[
{
"name": "testOne",
"tag": "<span id=my-test-1>Test One</span>"
},
{
"name": "testTwo",
"tag": "Test Two"
},
{
"name": "testThree",
"tag": "Test Three"
},
{
"name": "testFour",
"tag": "<span id=my-test-2>Test Four</span>"
}
]
如您所見,有些標簽包含 id,有些則不包含。因此,我希望span用空字串替換任何標簽(即洗掉它們),但如您所見,數字不同。還需要注意的是,有時可能存在更多的 Id。
到目前為止,我有這個:
const dataString = JSON.stringify(dataArray);
const newData = data.replaceAll("<span id=my-test-??>", "") //First, remove the opening tags
JSON.parse(newData.replaceAll("</span>", "")) //then remove the closing tags
但是,這不會替換my-test-ID 中包含數字的所有標簽。因此,我如何替換類似于上面的內容,但指定一個 id 后面可以有任何數字my-test-?
uj5u.com熱心網友回復:
const dataString = JSON.stringify(dataArray);
const regex = /<span.*?>|<\/span>/gm;
const newData = dataString.replace(regex,'');
JSON.parse(newData);
這應該這樣做。
uj5u.com熱心網友回復:
您可以迭代陣列并替換箭頭內的內容。像那樣:
arr = [
{
"name": "testOne",
"tag": "<span id=my-test-1>Test One</span>"
},
{
"name": "testTwo",
"tag": "Test Two"
},
{
"name": "testThree",
"tag": "Test Three"
},
{
"name": "testFour",
"tag": "<span id=my-test-2>Test Four</span>"
}
]
n = arr.map(a => {
a.tag = a.tag.replace(/>.*</g, "><");
return a;
})
console.log(n)
uj5u.com熱心網友回復:
你可以使用正則運算式
const dataToString = JSON.stringify(dataArray);
const regex = /"<span([^]*)</span>"/gm;
const newData = dataString.replace(regex,"");
JSON.parse(newData);
當我將此代碼放在([^]*)跨度標記之間時,它匹配任何字符
uj5u.com熱心網友回復:
也許像這樣的功能是您的解決方案:
function replace(myString, start, end) {
const beginning = myString.indexOf(start)
const ending = myString.indexOf(end)
return myString.slice(0, beginning) myString.slice(ending end.length, myString.length);
}
console.log(replace("I have my BigString and it's awesome!", "Big", "ing"))
它將洗掉子字串之間的所有內容
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/416466.html
標籤:
上一篇:Boostrap4選單下拉選單未完全顯示在包含中使用它
下一篇:在子回圈中回圈串列的最佳方法
