Javascript 需要将字符串数据中的所有超链接更改为其他值

Javascript 需要将字符串数据中的所有超链接更改为其他值,javascript,jquery,Javascript,Jquery,我有一个字符串中的链接列表 var data='<ol> <li><a href="#/getpage/getData/1">A Christmas Carol</a></li> <li><a href="#/getpage/getData/2">Copyright</a></li> </ol>' var-data='1〕 ' 需要

我有一个字符串中的链接列表

var data='<ol>
     <li><a href="#/getpage/getData/1">A Christmas Carol</a></li>
     <li><a href="#/getpage/getData/2">Copyright</a></li>    
     </ol>'
var-data='1〕
  • '
    需要使用javascript或jquery将字符串中的所有链接更改为以下格式

    data = '<ol>
      <li><a href="getCurrentPage(1)">A Christmas Carol</a></li>
      <li><a href="getCurrentPage(2)">Copyright</a></li>    
      </ol>'
    
    data='1〕
    
  • '
    在这方面有人能帮我吗。
    提前感谢。

    使用javascript的替换功能,

    您好,您可以使用以下脚本

    $("a").each(function(){
      var href=$(this).attr("href");
      $(this).attr("href","getCurrentPage("+href.substring(href.lenght-1,href.length)+")");
    });
    
    尝试:

    var data='
  • ' 变量el=$(“”+数据+“”); el.find('li')。每个(功能(i){ $(this.find('a').attr('href',“getCurrentPage”(+(i+1)+”); }); data=el.html(); 警报(数据);
  • 对于未排序的字符串

    var data='<ol><li><a href="#/getpage/getData/1">A Christmas Carol</a></li><li><a href="#/getpage/getData/2">Copyright</a></li></ol>'
    var el = $("<div>"+ data + "</div>");
    el.find('li').each(function(i) {
        var num = $(this).find('a').attr('href').replace('#/getpage/getData/','');
       $(this).find('a').attr('href' , "getCurrentPage("+ num +")");
    });
    alert(el.html());
    
    var data='
  • ' 变量el=$(“”+数据+“”); el.find('li')。每个(功能(i){ var num=$(this.find('a').attr('href').replace('#/getpage/getData/',''); $(this.find('a').attr('href',“getCurrentPage(+num+”)); }); 警报(el.html());
  • 也许你可以试试:

    // use Regex to reformat the data
    var myregex = new RegExp('<a href="#/getpage/getData/([0-9]+)">', 'g'); // g means "global", i.e. match all
    var formated_data = data.replace(myregex, '<a href="getCurrentPage($1)">') // $1 is replaced by the content of the 1st parenthetis of the regex
    
    //使用Regex重新格式化数据
    var myregex=new RegExp(“”,'g');//g表示“全球”,即匹配所有
    var formatted_data=data.replace(myregex“”)/$1由regex的第一个父项的内容替换
    
    这将在“#/getpage/getData/”+任意整数形式下找到所有带有a href的“a”标记,并在“getCurrentPage”(+上面的整数+”)形式下用带有href的“a”标记替换它们。您也可以只匹配HREF而不考虑“a”标记


    你可以试试。

    我觉得你已经找到了解决办法。只是我花了一些时间在这上面,我想分享我的解决方案。如果你不同意我的解决办法,我不介意。如果您能看看解决方案,我将不胜感激

    这是小提琴

    $('body').append('').find('div:last').addClass('temp');
    $('.temp').html(数据);
    $('.temp a[href^=“#/getpage/getData/”)。每个(函数(){
    var href=$(this.attr(“href”);
    var id=href.replace(“#/getpage/getData/”,“”);
    $(this.attr('href','getCurrentPage('+id+'));
    });
    数据=$('.temp').html();
    $('.temp').text(数据);
    

    干杯

    你对RegExp有什么概念吗?这是一个功能强大的工具,似乎适合您的需要!4.我对他们一无所知。。你能帮我吗。我们可以用RegExp..吗。。?字符串是来自服务器的动态数据。请参阅下面我的建议!如果您还有2-3个小时阅读一些文档,那么RegExp非常简单,您将看到它非常强大(您应该在没有简单解决方案或性能限制的时候使用它们)。您在这里有了一个良好的开端:页面中将有许多其他链接。。如果我这样做,其他人也会受到影响(您可以将标记类设置为特定的类型,并可以使用$(“.classname”)所有代码都是相同的,因为我们不知道当前字符串,它是动态的…:(哦,那么甚至很难预测目标字符串,使用regexp如果对字符串进行排序(“1”首先出现在HTML页面中,然后是“2”…)但是,如果不是这样的话,正则表达式解决了性能较低的问题。如果有人可以检查我的正则表达式,我没有长时间使用它们,并且忘记了许多需要转义的特殊字符
    // use Regex to reformat the data
    var myregex = new RegExp('<a href="#/getpage/getData/([0-9]+)">', 'g'); // g means "global", i.e. match all
    var formated_data = data.replace(myregex, '<a href="getCurrentPage($1)">') // $1 is replaced by the content of the 1st parenthetis of the regex
    
    $('a[href^="#/getpage/getData/"]').each(function(){
        var href = $(this).attr("href");
        var id = href.replace('#/getpage/getData/','');
        $(this).attr('href', 'getCurrentPage(' + id + ')');
    });
    
    $('body').append('<div/>').find('div:last').addClass('temp');
    $('.temp').html(data);
    $('.temp a[href^="#/getpage/getData/"]').each(function(){
        var href = $(this).attr("href");
        var id = href.replace('#/getpage/getData/','');
        $(this).attr('href', 'getCurrentPage(' + id + ')');
    });
    
    data=$('.temp').html();
    
    $('.temp').text(data);