jQuery - 将文本分隔为字符串

时间:2010-08-25 15:19:54

标签: jquery loops

让我们说我的HTML看起来像这样:

<p>12345, 23, 64229, 359</p>

此段可以有数百个以逗号分隔的值。 它也可以是空的。

我想把这些值变成链接。 第一个值应链接到“http://www.example.com/?id=12345” “http://www.example.com/?id=23”的第二个值 ..等等。

最好的方法是什么?

3 个答案:

答案 0 :(得分:2)

您可以使用正则表达式.replace(),如下所示:

​$("p").html(function(i, h) {
  return h.replace(/\d+/g, function(m) { return "http://www.example.com/?id=" + m; });
});​​

You can test it out here,或者点击链接:

$("p").html(function(i, h) {
  return h.replace(/\d+/g, function(m) { 
     return "<a href='http://www.example.com/?id="+m+"'>"+m+"</a>"; 
  });
});​

You can give it a try here

答案 1 :(得分:1)

试一试: http://jsfiddle.net/uJRb6/

var nums = $('p').text().split(/\s*,\s*/);
var tags = '';

    $.each(nums,function(i,val) {
        tags += '<a href=http://www.example.com/?id=' + val + '>' + val + '</a><br>'
    });
$('body').append(tags);​

如果您担心内容的安全性,可以这样做:

var nums = $('p').text().split(/\s*,\s*/);
var tags = [];

    $.each(nums,function(i,val) {
        tags.push($('<a>',{text:val + ' ', href:'http://www.example.com/?id=' + val}));
    });
$(tags).appendTo('body');

答案 2 :(得分:1)

你不需要jQuery,你可以用纯javascript做这个:

vals = $('p').html().split(',');
for(var i in vals) {
  tags += '<a href=http://www.example.com/?id=' + val + '>link</a><br>'
}
$('body').append(tags)