1

我想获取其中包含特定单词/字符串的所有行..并将其存储在数组中我有一个字符串如下

<tr>
    <td>Total</td>
    <td>123</td>
    <td>567</td>
</tr>
<tr>
    <td>ABC</td>
    <td>123</td>
    <td>567</td>
</tr>
<tr>
    <td>XYZ</td>
    <td>123</td>
    <td>567</td>
</tr>
<tr>
    <td>Total</td>
    <td>7676</td>
    <td>8767</td>
</tr>

我想获取具有字符串 Total 的行,并且值应该存储在数组中

所以输出应该

    <tr>
        <td>Total</td>
        <td>123</td>
        <td>567</td>
    </tr>

 <tr>
        <td>Total</td>
        <td>7676</td>
        <td>8767</td>
    </tr>

用字符串“Total”获取行的正则表达式应该是什么

4

3 回答 3

0

在 JQUERY 中,您的解决方案将--->

var tbl = $('#tblId')
var array = [];

$('tr td' ,tbl).each(function(){
    var htmlstring = (this).innerHTML;
    if(htmlstring == 'Total')
    {
        if((this).innerHTML == 'Total') 
        {
            $('td', this.parentNode).each(function(){
                array.push(this);
            });
        }
    }
});
alert(array);

http://jsfiddle.net/gXGj6/13/

于 2013-05-17T12:53:02.193 回答
0

要为每个包含单词“Total”的单元格的表格行构建数组,您可以使用此正则表达式:

(?<=<tr>\s*<td>Total</td>)(\s*<td>\d+</td>)+(?=\s*</tr>)

这会给你以下2场比赛:

<td>123</td>
<td>567</td>

<td>7676</td>
<td>8767</td>

然后,在这些匹配项上,您可以使用此正则表达式拆分以获取数组作为回报:

\D+
于 2013-05-17T13:01:00.160 回答
0

使用 jQuery 的好解决方案:

http://jsfiddle.net/robfarmer/KaGBL/2/

HTML:

Source
<table id="source">
<tr>
    <td>Total</td>
    <td>123</td>
    <td>567</td>
</tr>
<tr>
    <td>ABC</td>
    <td>123</td>
    <td>567</td>
</tr>
<tr>
    <td>XYZ</td>
    <td>123</td>
    <td>567</td>
</tr>
<tr>
    <td>Total</td>
    <td>7676</td>
    <td>8767</td>
</tr>
</table>
Results
<table id="results"></table>

Array Results:
<ul id="arrayResults"/>

Javascript

   $(document).ready(function() {
    $("#source tr td:contains('Total')").closest("tr").clone().appendTo("#results");

    var cells = [];

    $("#source tr td:contains('Total')").closest("tr")
    .children("td").not(":contains('Total')").each(function(index, element) {
        cells.push($(element).text());
    });

    $(cells).each(function(index, element) {
        $("#arrayResults").append($("<li>").text(element));
    });
});
于 2013-05-17T13:50:41.977 回答