0

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

例子:

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

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

对于以上两个 URL(假设它们是超链接的),用户可以执行查找和替换,找到“search+phrase”并将其替换为“custom+search+new”以呈现以下新的超链接 URL:

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的组合

4

2 回答 2

0

You can use a regular expression and either JavaScript or Jquery.

Since you didn't mark Javascript or JQuery, here's an example with jQuery (thought it can be easily replaced with 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);
        }
    });
}

Fiddle: http://jsfiddle.net/UP8x5/

于 2013-08-03T14:40:41.343 回答
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;
}

这对字符串使用了替换方法。是一个小提琴。

替换实际链接中的文本

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 );
}

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

于 2013-08-03T14:46:59.017 回答