2016-05-06 11 views
1
var url = "http://www.example.com/activate_account.html#123,572ad7f557455"; 
var userid = url.substring(url.indexOf("#") + 1); 
var pass = url.substring(url.indexOf(",") + 1); 

console.log("User id: " + userid + "Password: " + pass); 

Ich möchte String von der URL als Wert erhalten, aber wenn ich versuche, Javascript-Code wie oben der Wert wurde angegeben, ist nicht das, was ich will. Die Ausgabe, die ich aus dem Code oben erhalten ist, wie folgt aus:Wert von URL

userid : 123,572ad7f557455 pass : 572ad7f557455 

Das Problem der Benutzer-ID ist. Wie kann ich nur 123 vor dem Komma anzeigen?

userid : 123 
+1

Wenn Sie wirklich in der Web-Entwicklung arbeiten, würde ich vorschlagen, Sie bleiben bei der "GET", die Abfrage-String-Methode ist und von einer großen Vielzahl von Bibliotheken unterstützt. Var url = "http://www.example.com /activate_account.html#123,572ad7f557455 "; werden var url = "http://www.example.com/activate_account.html?userid=123&pass=572ad7f557455"; – PSo

Antwort

0

Sie könnten versuchen, End-Index von url.indexOf(","), wie dies für substring() Verfahren einzustellen:

var userid = url.substring(url.indexOf("#") + 1, url.indexOf(",")); 

N. B.split() kann Ihnen helfen, wenn es kein , im Passwortfeld gibt.

+1

Es ist wirklich Arbeit! –

0

versuchen Sie dies:

var url = "http://www.example.com/activate_account.html#123,572ad7f557455"; 
var params = url.substring(url.indexOf("#") + 1).split[','];  
var userid = params[0]; 
var pass = params[1]; 

console.log("User id: " + userid + "Password: " + pass); 
1

einfache Art und Weise ist:

var url = "http://www.example.com/activate_account.html#123,572ad7f557455";  
var urlData = url.substring(url.indexOf("#") + 1); 
var userinfo = urlData.split(','); 

console.log("User id: " + userinfo[0]); 
console.log("Password: " + userinfo[1]); 

Es ist Arbeit, wenn Sie Ihr Passwort in param nicht , haben.

Wenn Sie Passwort , haben, slice verwenden, um es sicherzustellen Arbeit:

var url = "http://www.example.com/activate_account.html#123,572ad7f557455"; 
var urlData = url.substring(url.indexOf("#") + 1); 
var userinfo = urlData.split(','); 
var userId = userinfo[0]; 
var userinfo = urlData.split(','); 
var userPassword = urlData.slice(userId.length + 1, urlData.length); // userId.length + 1 to remove comma 

console.log("User id: " + userId); 
console.log("Password: " + userPassword); 
0

Dies ist nicht der richtige Weg params URL zu senden, müssen Sie es wie http://www.example.com/activate_account.html?paramName=123 ändern, dann können Sie Ihre Daten erhalten von Param Name. Und auch das Senden des Benutzernamens und des Passworts ist nicht gut, Sie müssen das in den Autorisierungs-Header setzen, der von der Basis 64 aus Sicherheitsgründen kodiert wird.

Verwandte Themen