从url获取字符串值

时间:2016-05-06 02:42:24

标签: javascript html

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代码时,给出的值不是我想要的。我从上面的代码得到的输出是这样的:

userid : 123,572ad7f557455 pass : 572ad7f557455

问题是用户ID。如何在逗号前只显示123?

userid : 123

4 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

您可以尝试按substring()设置url.indexOf(",")方法的结束索引,如下所示:

var userid = url.substring(url.indexOf("#") + 1, url.indexOf(","));
如果密码字段中没有split()

N.B。 ,可能会对您有所帮助。

答案 2 :(得分: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);

答案 3 :(得分:0)

这不是通过URL发送params的正确方法,您需要像http://www.example.com/activate_account.html?paramName=123一样更改它,然后您可以通过param名称获取数据。而且发送这样的用户名和密码并不好,你需要把它放在授权标题中,出于安全考虑,它将由base 64编码。

相关问题