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
答案 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编码。