#javascript #jquery
#javascript #jquery
Вопрос:
этот URL
"?route=system/template/updateamp;template_id=22amp;token=200bfaa1f5d6cda4c782f98b15f32e7f"
и мне просто нужен токен из нее
200bfaa1f5d6cda4c782f98b15f32e7f
каков наилучший способ проанализировать это out…it кажется, всегда последним
Комментарии:
1. Как вы можете видеть, многие ответы различаются по своему подходу, и некоторые могут не подходить, если URL-адрес даже немного отличается, это в основном потому, что ответы относятся к этому конкретному случаю и никаких других вариантов, поскольку они не знают о них, если это единственная возможная «форма», с которой вы могли столкнуться в URL, это нормально, но если у вас может быть
amp;otherthing=123
в конце, некоторые могут не работать, возможно, разъяснение помогло бы.2. ваше право, я заметил, что, возможно, есть другой get var в end…so я пошел с этим вводом.match(/token=(w )/)[1]
Ответ №1:
Это должно сделать это:
var
input = "?route=system/template/updateamp;template_id=22amp;token=200bfaa1f5d6cda4c782f98b15f32e7f",
output = input.split("=").splice(-1)[0]; // output === "200bfaa1f5d6cda4c782f98b15f32e7f"
Или, если вы не уверены, что токен всегда является последним значением:
var
input = "?route=system/template/updateamp;template_id=22amp;token=200bfaa1f5d6cda4c782f98b15f32e7famp;foo=baramp;baz=spam",
output = input.substring(input.indexOf('token=')).split(/[=amp;]/)[1]; // output === "200bfaa1f5d6cda4c782f98b15f32e7f"
Комментарии:
1. работает отлично, особенно поскольку токен всегда является последним. В противном случае это не сработает.
Ответ №2:
Или используйте регулярное выражение. В этом случае это будет похоже
Форматировать
var re = /token=(S )/i;
alert(url.match(re)[1]);
Комментарии:
1. или … оповещение (input.match(/token=(w )/)[1])
Ответ №3:
Вы можете просто заменить другую часть:
s = "?route=system/template/updateamp;template_id=22amp;token=200bfaa1f5d6cda4c782f98b15f32e7f"
s.replace(/.*token=/, '')
#=> "200bfaa1f5d6cda4c782f98b15f32e7f"
Ответ №4:
s = "?route=system/template/updateamp;template_id=22amp;token=200bfaa1f5d6cda4c782f98b15f32e7f";
s.match("[0-9a-z]*$");
Отображает "200bfaa1f5d6cda4c782f98b15f32e7f"