繁体   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