这是我的文字,只是字符串格式的HTML标签
var str = "<td class='compl-text> I want </div></td></tr> <td class='compl-text'> to extract </div></td></tr> <td class='compl-text'> this text </div></td></tr>";
var s_txt = str.match(/compl-text\s*(.*?)\s*div/g);
console.log(s_txt);
而s_txt的输出为compl-text"><div,compl-text"><div,compl-text"><div,compl-text"><div
但我希望输出为I want, to extract, this text
为了获得这个输出,应该做出哪些改变。
P.S这里我不想使用任何循环,只想使用正则表达式。
感谢。
答案 0 :(得分:1)
您的HTML无效,使用有效的HTML可以执行以下操作:
var newEl = $('<div>');
newEl.html("<span>Hi, <b>FRIEND</b>, how are you?</span>");
console.log(newEl.text());
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
但是使用无效字符串,您只能在>
和<
之间找到字符串
var str = "<td class='compl-text> I want </div></td></tr> <td class='compl-text'> to extract </div></td></tr> <td class='compl-text'> this text </div></td></tr>";
var regex = />([\w ]+)</g;
var s_txt = str.match(regex).filter(function (a) {
return a != "> <";
}).map(function (a) {
return a.replace(/>|</g, "")
}).join();
console.log(s_txt);
&#13;