2014-09-22 34 views
0

將「key」變量放入此字符串內時,它將顯示「simplelogin%3A5」而不是「simplelogin:5」。有沒有辦法讓後者通過?傳入關鍵字會導致我的Firebase網址中出現多餘字符,我該如何刪除它們?

var populateTasks = function(date, key){ 
    $scope.ref = new Firebase("https://myfirebase.firebaseio.com/users/"+key+"/tasks"); 
    }; 

結果:https://myfirebase.firebaseio.com/users/simplelogin%3A5/tasks 我需要:https://myfirebase.firebaseio.com/users/simplelogin:5/tasks

+1

我只是用演示網址試了一下,並且無法使用'simplelogin:5'重現此操作。這表明您的密鑰在連接時已經被編碼。你應該證明更多關於這個密鑰來自哪裏的數據(大概是一個URI),這對準確的答案是至關重要的。 – Kato 2014-09-22 14:18:56

回答

1
var uri = "//what you need to convert"; 
var uri_dec = decodeURIComponent(uri); 
var res = uri_dec; 
0

你試過它串聯到URL之前修剪的關鍵?

key = key.trim(); 
+0

這不是一個空格問題,但是:在由瀏覽器轉義的id的中心。 – Kato 2014-09-22 14:12:35

1

key的值從哪裏來?如果你從網址中獲得它,那麼你可以看到%3A

A :在URL中有特殊含義,所以它會被轉義。並且:的URL轉義序列是%3A

要轉換%3A:你只是反轉義這樣的:

unescape(key) 

或者使用decodeURIComponent,在這種情況下完成相同的。解碼值的最好方法取決於它爲什麼被編碼,因此我的第一個問題。

相關問題