![](/img/trans.png)
[英]Javascript regexp replace of multiline content between two tags (including the tags)
[英]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.