我得到了一些HTML以下列方式格式化:用原型替换正则表达式?
[Title|<a class="external" href="http://test.com">http://test.com</a>]
从这些文字,我想创建一个使用“标题”作为文本和“http://test.com”为纽带的链接。我怎样才能在原型中最好地做到这一点?
我得到了一些HTML以下列方式格式化:用原型替换正则表达式?
[Title|<a class="external" href="http://test.com">http://test.com</a>]
从这些文字,我想创建一个使用“标题”作为文本和“http://test.com”为纽带的链接。我怎样才能在原型中最好地做到这一点?
这里是一个正则表达式,而这样做的,将保留锚标记的原始属性替换:
var link = "[Title|<a class=\"external\" href=\"http://test.com\">http://test.com</a>]";
var pattern = /\[([^|]+)\|([^>]+.?)[^<]*(<\/a>)\]/;
link.replace(pattern, "$2$1$3"));
输出是:
<a class="external" href="http://test.com">Title</a>
没有原型:http://jsfiddle.net/JFC72/,你可以使用原型使其更简单。
var myStr = "[THIS IS TITLE|http://test.com]";
document.getElementById('testdiv').innerHTML = getLink(myStr);
function getLink(myStr)
{
var splitted = myStr.split("|http");
var title = splitted[0].substring(1);
var href = splitted[1].substring(0,splitted[1].length-1);
return "<a href='http" + href + "'>" + title + "</a>";
}
谢谢!尽管如此,我仍然遇到了困难,请参阅:http://jsfiddle.net/JFC72/1/ – FLX 2011-03-08 06:05:40
纯正则表达式:
var ProperLink=WierdString.replace(/\[([^|]+)\|(<[^>]+>)[^<]+[^\]]+\]/,'$2$1</a>')
在上下文
您提供:
function convert(id){
$(id).innerHTML=$(id).innerHTML.replace(/\[([^|]+)\|(<[^>]+>)[^<]+[^\]]+\]/g,'$2$1</a>');
}
convert('testdiv');
好的单线程。 – DhruvPathak 2011-03-08 05:48:53
好Sha!你知道我可以如何在一个例子中实现它:http://jsfiddle.net/JFC72/1/?谢谢你:) – FLX 2011-03-08 06:09:32
答案更新,以反映你的具体例子=) – Shad 2011-03-08 21:23:59
var dummyDiv = document.createElement('div');
dummyDiv.innerHTML = '[Title|<a class="external ...';
var parts = dummyDiv.innerText.slice(1, -1).split('|');
// parts[0] is the text, parts[1] is the URL
你怎么想你的最终输出是? – DhruvPathak 2011-03-08 06:21:19
嗨DhruvPathak,输出应该是:Title – FLX 2011-03-08 16:58:09