我正在尝试过滤掉文本字符串中的主题标签,将其拆分,然后删除不需要的HTML标记。
我没有得到正确的输出,我不太确定我在哪里犯错,并且非常感谢你的指导。
这是文本字符串值的示例:
"<a href=\"https://twitter.com/search?q=fnb\" target=\"_blank\">#fnb</a>, <a href=\"https://twitter.com/search?q=mobilesimcard\" target=\"_blank\">#mobilesimcard</a>, <a href=\"https://twitter.com/search?q=what\" target=\"_blank\">#what</a>, <a href=\"https://twitter.com/search?q=refugeechild\" target=\"_blank\">#refugeechild</a>"
这是我到目前为止的代码:
var str = "<a href=\"https://twitter.com/search?q=fnb\" target=\"_blank\">#fnb</a>, <a href=\"https://twitter.com/search?q=mobilesimcard\" target=\"_blank\">#mobilesimcard</a>, <a href=\"https://twitter.com/search?q=what\" target=\"_blank\">#what</a>, <a href=\"https://twitter.com/search?q=refugeechild\" target=\"_blank\">#refugeechild</a>";
var array = [];
var parts = str.split('target=\"_blank\">', '');
parts.forEach(function (part) {
var rem1 = part.replace('</a>', '');
array.push(rem1)
})
var value = array;
console.log(value);
我想要的输出是:#fnb,#mobsimcard,#what,#remageechild
我的str.split()
工作不正常,我相信我也必须扩展.replace()
。
谢谢!
答案 0 :(得分:2)
具有正则表达式的解决方案:
var str = "<a href=\"https://twitter.com/search?q=fnb\" target=\"_blank\">#fnb</a>, <a href=\"https://twitter.com/search?q=mobilesimcard\" target=\"_blank\">#mobilesimcard</a>, <a href=\"https://twitter.com/search?q=what\" target=\"_blank\">#what</a>, <a href=\"https://twitter.com/search?q=refugeechild\" target=\"_blank\">#refugeechild</a>";
var array = str.match(/#[a-z-_]+/ig)
console.log(array);
这个正则表达式只是一个非常简单的正则表达式,在野外有更好的表达,如Best HashTag Regex
答案 1 :(得分:1)
尝试数组map()方法:
工作演示:
var str = "<a href=\"https://twitter.com/search?q=fnb\" target=\"_blank\">#fnb</a>, <a href=\"https://twitter.com/search?q=mobilesimcard\" target=\"_blank\">#mobilesimcard</a>, <a href=\"https://twitter.com/search?q=what\" target=\"_blank\">#what</a>, <a href=\"https://twitter.com/search?q=refugeechild\" target=\"_blank\">#refugeechild</a>";
var resArray = [];
var parts = str.split('</a>');
var array = parts.map(function(item) {
return item.split('>')[1];
});
for(var i = 0; i < array.length-1; i++) {
resArray.push(array[i]);
}
var value = resArray;
console.log(value);
&#13;