2016-05-06 4 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); 

私は値としてURLから文字列を取得したいと思いますが、上記のようなjavascriptコードを試してみると、値は与えられたものではありません。上のコードから得られる出力は、次のようになります。URLからの文字列値の取得

userid : 123,572ad7f557455 pass : 572ad7f557455 

問題はユーザーIDです。コンマの前に123だけを表示するにはどうしたらいいですか?

userid : 123 
+1

ウェブ開発で実際に作業している場合は、クエリ文字列メソッドであり、さまざまなライブラリでサポートされている「GET」に固執することをおすすめします.var url = "http://www.example.com /activate_account.html#123,572ad7f557455 "; "var url =" http://www.example.com/activate_account.html?userid=123&pass=572ad7f557455 "になります。 – PSo

答えて

0

あなたは、このようなurl.indexOf(",")によってsubstring()メソッドの終了インデックスを設定しようとすることができます:

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

N.B.パスワードフィールドに,がない場合は、split()が役に立ちます。

+1

本当にうまくいきます! –

0

これを試してみてください。

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

簡単な方法です:

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]); 

のparamにパスワードが,を持っていない場合はそれが仕事です。

パスワードはそれが動作することを確認することがsliceを使用し、,をお持ちの場合:

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

これはURL経由のparamsを送信するための正しい方法ではありません、あなたはhttp://www.example.com/activate_account.html?paramName=123のようにそれを変更する必要があり、あなたはあなたのデータを得ることができますパラム名でまた、このようなユーザー名とパスワードを送信することはまったくうまくいかないので、セキュリティ目的のためにベース64でエンコードされる認証ヘッダーにその名前を入れる必要があります。

関連する問題