【发布时间】:2011-11-23 12:54:48
【问题描述】:
我正在尝试通过调用缩短 url 然后替换文本的函数来替换字符串中的 url。缩短逻辑完美运行,我最终得到了正确的替换 url,但是我无法让替换功能正常工作。这是我的代码。
var newtext = shortenUrl(curText);
var shortenUrl = function (text) {
var exp = /(ftp|http|https):\/\/(?!bit\.ly)(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/ig;
text.replace(exp,
function ($1) {
$.getJSON("http://api.bitly.com/v3/shorten?login=xxxxxx&apiKey=xxxx&longUrl=" + escape($1) + "&format=json",
function (result) {
return result.data.url;
});
});
return text;
};
result.data.url 根据 bit.ly API 规范包含适当的缩短 url;然而,
newtext 由于某种原因总是为空。
【问题讨论】:
-
尝试将您的
shortenUrl设为函数(非匿名)。 -
我刚刚处理了这样一个问题。看到这个问题:stackoverflow.com/questions/8196889/…
标签: javascript regex