我有 XML,每个标签中都有附加信息,BLAH。创建标签时,我使用常量( XMLSPLIT
作为常量 XML_SPLITTER
)将额外信息与标签名称分开...我需要这样做,因为我正在从 JSON 对象生成 XML,并且我不能有多个相同的键...但在 XML 输出中,不能有多余的东西。
例如:
....
<SetXMLSPLITBLAH>
<Value>9</Value>
<SetType>
<Name>Foo</Name>
</SetType>
</SetXMLSPLITBLAH>
...
因此,生成 XML 后,我会检查并清理它。我正在尝试用正则表达式来做到这一点。我想,我想删除拆分器之后的行上的所有内容,并将其替换为 >
.
let reg = new RegExp("<Set"+XML_SPLITTER+"(.*)\/g");
cleanXML = dirtyXML.replace(reg, "<Set>")
这不起作用。
我会注意到,我 reg = /<Set(.*)/g;
这工作得很好......但它也捕获“SetType”以及以“开头的标签的任何其他使用
最佳答案
因为^
是一个正则表达式特殊字符,表示“行的开头”。你需要像\^
一样转义它为了这个工作。类似 /<Set\^\^[^>]*>/g
应该可以解决问题。
小提示:上面的正则表达式假设示例中的“BLAH”字符串永远不会包含 >
字符...但如果确实如此,那么您的 XML 无论如何都是格式错误的。
关于javascript - 使用正则表达式删除常量后的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58140554/