找到&替换用户脚本以通过网站更改超链接

时间:2013-08-03 14:07:12

标签: replace

我在网页上有一个超链接列表,我希望允许用户执行查找和替换命令,该命令将立即更改所有超链接并生成一个可以复制并粘贴到其他位置的自定义列表。

示例:

google.com/search?q=search+phrase&pws=0

google.com/search?tbm=blg&q=search+phrase&pws=0

对于以上两个URL(假装它们是超链接的),用户可以执行查找和替换,找到“搜索+短语”并将其替换为“自定义+搜索+新”以呈现以下新的超链接URL:< / p>

google.com/search?q=custom+search+new&pws=0

google.com/search?tbm=blg&q=custom+search+new&pws=0

它可以是http://htmlsandbox.comhttp://textmechanic.co/Find-and-Replace-Text.html

的组合

2 个答案:

答案 0 :(得分:0)

您可以使用正则表达式和JavaScript或Jquery。

由于您没有标记JavascriptJQuery,这里是jQuery的一个示例(认为它可以很容易地替换为Javascript)。

function replaceCustomSearch (custom) {
    var patt = /q=[\w\d\+]+/;
    $('a[href]').each(function(){
        var $this = $(this),
            href = $this.attr('href');
        if (patt.test(href)) {
            href = href.replace(patt.exec(href), "q=" + custom);
            $this.attr('href', href);
        }
    });
}

小提琴:http://jsfiddle.net/UP8x5/

答案 1 :(得分:0)

关于这个问题,你的问题并不是很清楚。正如您所说的那样,客户端必须改变(并且在服务器端没有提及任何内容),因此仅使用客户端编程语言来实现这一点是有意义的。在浏览器中,javascript将是一个逻辑解决方案。当您要做更复杂的事情时,您可能想要查看诸如jQuery之类的库。现在我将使用普通的javascript来提供这两个解决方案,因为这对于加载完整的库来说太简单了。

替换文字字段中的文字

如果您正在制作类似编辑器的内容,您可能会在文本字段中找到并替换某些内容。

function doReplace() {
  var s = document.getElementById('search').value;
  var r = document.getElementById('replace').value;

  var oldtext = document.getElementById('mytext').innerHTML;
  var newtext = oldtext.replace( s, r );

  document.getElementById('mytext').innerHTML = newtext;
}

这在字符串上使用replace-methodThis是一个小提琴。

替换实际链接中的文字

var $a = document.getElementsByTagName('a');
var search = "asdf";
var replace = "qwer";

for( var i = 0; i < $a.length; i++ ) {
    $a[i].href = $a[i].href.replace( '/' + search + '/g', replace );
}

工作小提琴here。它使用正则表达式和getElementsByTagName