JavaScript正则表达式以捕获<;在XML属性中
我有一种基于XML的脚本语言,我想在其中使用类似JavaScript正则表达式以捕获<;在XML属性中,javascript,regex,Javascript,Regex,我有一种基于XML的脚本语言,我想在其中使用类似 首先,强制链接告诉您不要这样做: 有了这些,你就可以做你想做的事了 您可以使用一个函数替换字符串对象的方法,因此我将首先使用您当前的正则表达式匹配属性,然后替换每个,也许您应该使用更高级的xml编辑器,它不需要您编辑文本级别。我不知道您文本的整个结构,但对您提供的示例有效。警告:这可能不完全有效,因为正则表达式不适合解析XML。@Chris我不想解析任意HTML。@user3195878 HTML~=XML。在这种情况下也是一样。您正在尝试用正
首先,强制链接告诉您不要这样做:
有了这些,你就可以做你想做的事了
您可以使用一个函数替换字符串对象的方法,因此我将首先使用您当前的正则表达式匹配属性,然后替换每个,也许您应该使用更高级的xml编辑器,它不需要您编辑文本级别。我不知道您文本的整个结构,但对您提供的示例有效。警告:这可能不完全有效,因为正则表达式不适合解析XML。@Chris我不想解析任意HTML。@user3195878 HTML~=XML。在这种情况下也是一样。您正在尝试用正则表达式解析非正则语言。谢谢。这也是我的解决方案。我以为会有办法得到
function escapeLtGt(str) {
return str.replace('<', '<').replace('>', '>');
}
function escapeLtGtInXmlAttrs(str) {
return str.replace(/="(.*?)"/g, escapeLtGt);
}
// example, logs '<example if="x<5" />'
console.log(escapeLtGtInXmlAttrs('<example if="x<5" />'));