如何使用jquery匹配标签后的文本?

时间:2011-09-01 04:26:51

标签: jquery html regex

我正在尝试使用jquery重新格式化以下文本:

<a href="3.3/">3.3/</a>                                               14-Apr-2011 14:43                   -
<a href="3.4.2/">3.4.2/</a>                                             06-Jun-2011 11:20                   -
<a href="3.8/">3.8/</a>                                               01-Jun-2011 16:27                   -

我用li标签包裹链接没有问题,但是试图提取日期并摆脱文本残留的其余部分正在伤害我的大脑。我看过一个jQuery文本选择器,但似乎没有出现给我的建议?

在一个理想的世界里,我会在一天结束时得到类似的东西:

<li><a href="3.3/">3.3/</a><br><p>14-Apr-2011 14:43</p></li>

1 个答案:

答案 0 :(得分:0)

由于您希望在内容中隔离可定义的模式,因此我将使用正则表达式来解析您正在查找的数据,然后根据需要重新格式化该数据。这是一个基本的例子:

$(document).ready(function () {
    var input = $('#content').html();           // Get content from #content container
    var regex = /^(<a.+<\/a>)\s+(\S+)/gm;       // Setup regex to extract anchor & date

    // Execute regex against input and return subpattern matches
    while( result = regex.exec(input) )
    {
        // Add formatted output to <ul>
        $('ul').append("<li>" + result[1] + "<br><p>" + result[2] + "</p></li>");
    }
});

此示例假定您的输入字符串位于元素#content内,并且您希望将新创建的<li>附加到<ul>,这可能不是这种情况。但是,这两个假设都应该很容易适应您的需求。