我試圖通過調用縮短url的函數來替換url中的url,然後替換文本。縮短邏輯完美地工作,並且最終得到正確的替換url,但是我無法使替換函數正常工作。這是我的代碼。Javascript-使用string.replace替換文本的函數
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'功能(不是匿名的)。 – Blender
剛纔我剛剛處理了一個這樣的問題。看到這個問題:http://stackoverflow.com/questions/8196889/still-having-problems-returning-value-through-function – rossipedia