簡體   English   中英

替換兩個標簽之間的數字 javascript

[英]replace number between two tags javascript

var input = " <root> <date>1995-03-03</date> <heure>13:33</heure> <day0>2</day0> <day1>0</day1> <day2>0</day2> <no2>1</no2> <pm10>2</pm10> <day0_o3>0</day0_o3> <day1_o3>0</day1_o3> <day2_o3>0</day2_o3> </root>"

假設我想將 day0 值更新為 6,那么 output 將是

OutPut = " <root> <date>1995-03-03</date> <heure>13:33</heure> <day0>6</day0> <day1>0</day1> <day2>0</day2> <no2>1</no2> <pm10>2</pm10> <day0_o3>0</day0_o3> <day1_o3>0</day1_o3> <day2_o3>0</day2_o3> </root>"

感謝您的回復,我已解決此問題

input.replace(/<day0>.*<\/day0>/, '<day0>6</day0>');

我不確定你是如何獲得輸入的,但如果它來自 DOM,你可以使用document.getElementsByTagName("day0")[0].innerText = "new output";

如果您還有其他意思,請提供更多詳細信息

使用純 javascript 您可以編寫如下內容:

document.querySelector("day0").textContent = "6";

如果您應該支持現在知道 textContent 的瀏覽器,您可以編寫:

document.querySelector("day0").innerText = "6";

不要使用innerHTML 替換文本以防止XSS 漏洞。

您還可以編寫自己的小 function 來查找字符串中的標簽,假設輸入始終是帶有標簽的字符串。

例如:

var replaceValueInTag = (tags, tagName, newValue) => {
    var startTag = `<${tagName}>`;
    var endTag = `</${tagName}>`;

    var indexOfStartTag = tags.indexOf(startTag);
    var indexOfEndTag = tags.indexOf(endTag);

    var value = tags.substring(indexOfStartTag + startTag.length, indexOfEndTag);

    return tags.replace(`${startTag}${value}${endTag}`, `${startTag}${newValue}${endTag}`); 
}

var tags = " <root> <date>1995-03-03</date> <heure>13:33</heure> <day0>2</day0> <day1>0</day1> <day2>0</day2> <no2>1</no2> <pm10>2</pm10> <day0_o3>0</day0_o3> <day1_o3>0</day1_o3> <day2_o3>0</day2_o3> </root>":

replaceValueInTag(tags, 'day0', '6');

// output: 
// <root> <date>1995-03-03</date> <heure>13:33</heure> <day0>6</day0> <day1>0</day1> <day2>0</day2> <no2>1</no2> <pm10>2</pm10> <day0_o3>0</day0_o3> <day1_o3>0</day1_o3> <day2_o3>0</day2_o3> </root>

暫無
暫無

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

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