javascript - 使用正则表达式删除常量后的所有内容

标签 javascript regex

我有 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/

相关文章:

javascript - $locationChangeStart 事件触发太迟

javascript - 如何将跨域添加到 &lt;script&gt; 标记?

javascript - 显示填充正文的登录页面

iphone - 如何使用 RegexKitLite 删除任意两个单词之间的空格/空白?

javascript - 日期正则表达式

javascript - 弧线内的折线图

javascript - 在javascript中将字符串转换为数字时如何保留前导零

java - 如何从字符串中删除多个特殊字符,而不使用任何内置函数,例如下面的 jdk 1.4 的replaceAll()

php - 如何使用正则表达式在字符串中查找所有 YouTube 视频 ID?

regex - 用缩写词替换句点(单个字母 + 句点),除非后跟大写字母