繁体   English   中英

将值从字符串提取到Javascript中的数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM