我如何在javascript中解析此字符串

时间:2011-04-25 14:03:07

标签: javascript jquery

此网址

"?route=system/template/update&template_id=22&token=200bfaa1f5d6cda4c782f98b15f32e7f"

我只需要它的标记

 200bfaa1f5d6cda4c782f98b15f32e7f

如何解析出来的最好方法......似乎总是最后一次

4 个答案:

答案 0 :(得分:2)

这应该这样做:

var
  input = "?route=system/template/update&template_id=22&token=200bfaa1f5d6cda4c782f98b15f32e7f",
  output = input.split("=").splice(-1)[0]; // output === "200bfaa1f5d6cda4c782f98b15f32e7f"

或者,如果您不确定令牌始终是最后一个值:

var 
  input = "?route=system/template/update&template_id=22&token=200bfaa1f5d6cda4c782f98b15f32e7f&foo=bar&baz=spam",
  output = input.substring(input.indexOf('token=')).split(/[=&]/)[1]; // output === "200bfaa1f5d6cda4c782f98b15f32e7f"

答案 1 :(得分:1)

或使用正则表达式。在这种情况下,它将像

格式

var re = /token\=(\S+)/i;
alert(url.match(re)[1]);

答案 2 :(得分:0)

您可以替换其他部分:

s = "?route=system/template/update&template_id=22&token=200bfaa1f5d6cda4c782f98b15f32e7f"

s.replace(/.*token=/, '')

#=> "200bfaa1f5d6cda4c782f98b15f32e7f"

答案 3 :(得分:0)

s = "?route=system/template/update&template_id=22&token=200bfaa1f5d6cda4c782f98b15f32e7f";
s.match("[0-9a-z]*$");

显示"200bfaa1f5d6cda4c782f98b15f32e7f"