如何从字符串中删除字符并使结果成为链接?

时间:2015-07-27 15:37:16

标签: javascript jquery html

我有一系列包含网址的span元素,但是在字符串的开头和结尾都有不需要的字符。

<span class="value"> : 'http://www.barratthomes.co.uk/new-homes/cambridgeshire/H618701-Trumpington-Meadows/'</span>

<span class="value"> : 'http://www.barratthomes.co.uk/new-homes/cambridgeshire/H618701-Trumpington-Meadows/'</span>

<span class="value"> : 'http://www.barratthomes.co.uk/new-homes/cambridgeshire/H618701-Trumpington-Meadows/'</span>

<span class="value"> : 'http://www.barratthomes.co.uk/new-homes/cambridgeshire/H618701-Trumpington-Meadows/'</span>

空格冒号在开头有另一个空格和引用,在末尾有引号

这些更正后的值必须放在保留在<a>代码中的span代码中,并将网址设为href和链接名称。

<span class="value"><a href="http://www.barratthomes.co.uk/new-homes/cambridgeshire/H618701-Trumpington-Meadows/">http://www.barratthomes.co.uk/new-homes/cambridgeshire/H618701-Trumpington-Meadows/</a></span>

这是我到目前为止所拥有的

$('span.value').each(function () {
   $('.value').text().substr(4, this.length-2);
});


$('span.value').each(function () {
    $('span.value').wrapInner(function () {
        return "<a href='" + $('span.value').nodeValue + "'></a>";
    });
});

我不确定如何将它们组合成一个功能

3 个答案:

答案 0 :(得分:1)

这是一种没有正则表达式的方法。

   $('.value').each(function(){
      var res = $(this).text().split("").filter(function(index){
          return index != "'" && index != ":" && index != " ";
      });
      console.log(res.join(""));
    });

Demo

修改

$('.value').each(function(){
      var res = $(this).text().split("").filter(function(index){
          return index != "'" && index != " ";
      }).slice(1);
      console.log(res.join(""));
});

答案 1 :(得分:0)

使用Javascript的替换方法与正则表达式。

&#13;
&#13;
var string = "<span class=\"value\"> : 'http://www.barratthomes.co.uk/new-homes/cambridgeshire/H618701-Trumpington-Meadows/'</span>";

var new_string = string.replace(/(.*?) : '(.*?)'/i, "$1<a href='$2'>$2</a>");
                                
alert(new_string);
&#13;
&#13;
&#13;

答案 2 :(得分:0)

  

我不确定如何将它们合并为一个功能

您已经在选择要操作的元素,然后使用.each()迭代该集合。在回调中,this将是迭代步骤的当前元素。所以将它包装在jQuery对象中并使用它。

$('span.value').each(function () {
   var target = $(this).text().substr(4, this.length-2);
   $(this).wrapInner(function () {
        return "<a href='" + target + "'></a>";
    });
});