使用JavaScript中的regexp从输入获取链接

时间:2014-01-27 23:48:43

标签: javascript jquery google-chrome-extension

我需要从此输入打击中提取editpost.php?tid=81432&pid=1557437

<input value="Edit" onclick="QuickEditPost('post_message_1557437','81432','editpost.php?tid=81432&amp;pid=1557437');bookmarkscroll.scrollTo('post_message_1557437');" type="button">

通过 JavaScript或jQuery

将值添加到<a>标记

我在Google Chrome扩展程序中使用此代码

所以对于页面中的每个输入,最终结果都是这样的

<input value="Edit" onclick="QuickEditPost('post_message_1557437','81432','editpost.php?tid=81432&amp;pid=1557437');bookmarkscroll.scrollTo('post_message_1557437');" type="button">

<a href="editpost.php?tid=81432&amp;pid=1557437">Edit</a>

jsfiddle中的代码http://jsfiddle.net/Jim_Toth/xHZ99/

我需要http://jsfiddle.net/Jim_Toth/xHZ99/1/

的结果

1 个答案:

答案 0 :(得分:1)

这样的事可能有用:

var htmlAsString = document.body.innerHTML;

document.body.innerHTML = htmlAsString.replace(
    /QuickEditPost\('post_message_(\d+)','(\d+)'[^>]*>/g,
    function (n0, n1, n2) {
        return n0 +
            '<a href="editpost.php?tid=' + n2 + '&amp;pid=' + n1 + '">Edit</a>';
    }
);

JSFiddle

但请注意,除非您控制输入,否则通过正则表达式解析HTML通常不是一个好主意。