[英]Extract values from a string to an array in Javascript
我有这个字符串,我想将TEXT1,TEXT2等提取到数组m。
我尝试过使用正则表达式,但不起作用。
var regex = /item\b[^>]*>(.*?)<button/g;
var string = '<li id="reminder-1440746981190" class="new-item">TEXT1
<button class="icon-trash delete-button" contenteditable="false"></button>
<button class="icon-pencil edit-button" contenteditable="false"></button>
</li>
<li id="reminder-1440746983703" class="new-item">TEXT2
<button class="icon-trash delete-button" contenteditable="false"></button>
<button class="icon-pencil edit-button" contenteditable="false"></button>
</li>';
var m;
while ((m = regex.exec(string)) !== null) {
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
}
alert(m[0]);
有任何想法吗?
您可以这样尝试:
var str = $('li').contents().filter(function(){ return this.nodeType === 3; }).text(); console.log(str);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <li id="reminder-1440746981190" class="new-item">TEXT1 <button class="icon-trash delete-button" contenteditable="false"></button> <button class="icon-pencil edit-button" contenteditable="false"></button> </li> <li id="reminder-1440746983703" class="new-item">TEXT2 <button class="icon-trash delete-button" contenteditable="false"></button> <button class="icon-pencil edit-button" contenteditable="false"></button> </li>
这是基于@Rahul的答案的一段代码,该代码返回修剪后的文本节点数组:
var arr = []; $('li').contents().filter(function(){ if (this.nodeValue !== null && this.nodeValue.trim().length > 0) { arr.push(this.nodeValue.trim()); } }); console.log(arr.filter(Boolean));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <li id="reminder-1440746981190" class="new-item">TEXT1 <button class="icon-trash delete-button" contenteditable="false"></button> <button class="icon-pencil edit-button" contenteditable="false"></button> </li> <li id="reminder-1440746983703" class="new-item">TEXT2 <button class="icon-trash delete-button" contenteditable="false"></button> <button class="icon-pencil edit-button" contenteditable="false"></button> </li>
结果: ["TEXT1", "TEXT2"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.