使用JQUERY和REGULAR EXPRESSIONS重写URL

时间:2014-11-16 16:29:33

标签: javascript regex

我整个下午都试图寻找一个好的解决方案,但没有运气。

这是问题所在: 我有一个旧的HTML网站。我必须改变以这种方式构建的每个链接:

<a href="javascript: OpenImage('/dir1/dir2/Image321.jpg',' Image description ');void(0);">

标准a href:

<a href="/dir1/dir2/Image321.jpg" title="Image description">

我想我必须寻找以&#34; avascript开头的href:&#34;

$("a[href^='javascript:']")

并使用正则表达式进行更改..

但经过数千次测试后,我无法解决..

有什么想法吗? 感谢

2 个答案:

答案 0 :(得分:0)

(<a href=")[^']+'([^']+)','([^']+).*

试试这个。$1$2" title="$3">。见。演示。

http://regex101.com/r/lZ5mN8/14

var re = /(<a href=")[^']+'([^']+)','([^']+).*/gm;
var str = '<a href="javascript: OpenImage(\'/dir1/dir2/Image321.jpg\',\' Image description \');void(0);">';
var subst = '$1$2" title="$3">';

var result = str.replace(re, subst);

答案 1 :(得分:0)

试试这个:

var re = /(^<a\s*href=")javascript:\s*OpenImage\('(.*)'\s*,\s*'(.*)'([^<]+)">/gmi;
var str = '<a href="javascript: OpenImage(\'/dir1/dir2/Image321.jpg\',\' Image description \');void(0);">\n\n<a href="javascript: OpenImage(\'/dir1/dir2/Image321.jpg\',\' Image description \');void(0);"> djhjdh</a>\n\n<a href="javascript: OpenImage(\'/dir1/dir2/Image321.jpg\',\' Image description \');void(0);"><img src="asdf"></a>';
var subst = '\1\2" title="\3">';

var result = str.replace(re, subst);

live demo