Javascript 提取标记之间的所有值
首先,我的输入不是格式良好的XML。所以基本上我有一堆标签。如何使用javascript/Regex提取标记之间的所有值 输入:Javascript 提取标记之间的所有值,javascript,regex,Javascript,Regex,首先,我的输入不是格式良好的XML。所以基本上我有一堆标签。如何使用javascript/Regex提取标记之间的所有值 输入: <bad xml doc> <a>dsda</a> <message>hi</message> <b></b> <c>dsds</c> <message>get this message too</message> 输出: 嗨 也收到这
<bad xml doc>
<a>dsda</a>
<message>hi</message>
<b></b>
<c>dsds</c>
<message>get this message too</message>
输出:
嗨
也收到这个消息
jQuery实际上非常适合解析和遍历XML以及HTML。策略是使用坏XML创建一个jQuery对象,然后可以使用CSS选择器进行查询 例如,要提醒第一条消息中的文本,请执行以下操作:
var badDoc = $('<bad xml doc><a>dsda</a><message>hi</message><b></b><c>dsds</c><message>get this too</message>');
alert(badDoc.find('message')[0].innerHTML);
您可以与全局标志一起使用:
var messages = text.match(/<message>(.*?)<\/message>/g).map(function (m) {
return m.slice(9, -10);
})
console.log(messages.join('\r\n'));
var text='1〕\
dsda\
嗨\
\
DSD\
也得到这个信息';
var messages=text.match/*?/g.mapm函数{
返回m.9,-10;
};
window.alertmessages.join'\r\n';XML从何而来?格式错误的文档永远无法正确解析。不要试图纠正这些症状。找出原因!错误消息已连接成一个长字符串,因此它包含大量xml消息和文本。我只是尝试将其作为文本输入,并使用js/regex获取Tagsry this/*?/之间的所有值。它是否需要像下面这样在第一行周围加单引号:var re='/.*/gm';不,第一行不需要单引号。请看这一页:不客气。。。如果这解决了您的问题,请将问题标记为已解决。我该怎么做?绿色复选框?仅返回第一条消息。我可以将消息与\r\n连接起来吗?@gishman是的。只需使用所需的分隔符加入消息数组,如\r\n。
var messages = text.match(/<message>(.*?)<\/message>/g).map(function (m) {
return m.slice(9, -10);
})
console.log(messages.join('\r\n'));