我有一个data.text字符串,它返回一个像:
的值<span>Name</span>Message
是否可以在Javascript中取这个值并分成两个,这样我就可以在两个不同的变量中得到'Name'和'Message'?
我试过了,
var str = data.text;
var arr[] = str.split("</span>", 2);
var str1 = arr[0];
var theRest = arr[1];
但没有工作
答案 0 :(得分:1)
可能有很多方法,但使用split
添加。
var str = '<span>Name</span>Message';
var result = str.split(/<\/?span>/); // Split by span tags(opening and closing)
result.shift(); // Remove first empty element
console.log(result);
document.write(result);
&#13;
此处的正则表达式<\/?span>
将与<span>
和</span>
匹配,因为正则表达式\/?
已/
可选。
您还可以将以下正则表达式与非捕获组一起使用。
var str = '<span>Name</span>Message';
var regex = /(?:<\/?span>)(\w+)/g,
result = [];
while (res = regex.exec(str)) {
result.push(res[1]);
}
console.log(result);
document.write(result);
&#13;
答案 1 :(得分:0)
您可以使用空字符串替换open标签,然后使用close标签拆分字符串,如下所示:
var values = data.text.replace('<span>', '').split('</span>');
console.log(values[0]); // Name
console.log(values[1]); // Message
答案 2 :(得分:0)
You should use a DOM parser to parse HTML.
var str = "<span>Name</span>Message",
el = document.createElement('div');
el.innerHTML = str;
[].map.call(el.childNodes, function(node) {
return node.textContent;
}); // [ "Name", "Message" ]