使用JavaScript正则表达式替换XML起始声明标签
移除JavaScript字符串中的XML声明标签
要匹配并移除所有以<?XML开头、?>结尾的字符串,可以使用正则表达式结合replace()方法实现,同时兼顾全局匹配、大小写兼容和跨行场景:
代码示例
// 原始字符串,包含多个XML声明 const rawString = '<?XML version="1.0" encoding="UTF-8" ?>测试内容<?xml standalone="yes" ?>更多文本'; // 移除所有符合规则的XML声明 const processedString = rawString.replace(/<\?XML[\s\S]*?\?>/gi, ''); console.log(processedString); // 输出:"测试内容更多文本"
正则表达式说明
<\?XML:匹配开头的<?XML,\?是对问号的转义(问号在正则中是特殊元字符)[\s\S]*?:匹配任意字符(包括换行符),*?是非贪婪匹配模式,确保只匹配到最近的?>,避免误删多个声明之间的内容\?>:匹配结尾的?>gi标志:g表示全局匹配所有符合规则的片段;i表示忽略大小写,兼容<?xml小写的情况
如果可以确定XML声明都是单行内容,也可以将[\s\S]*?替换为.*?,效果一致但更简洁:
const processedString = rawString.replace(/<\?XML.*?\?>/gi, '');
内容的提问来源于stack exchange,提问作者Ivan Fernandes Garcia
相关产品推荐
相关产品推荐

