2015-04-10 3 views

ответ

2

Вам нужно удалить промежуточный .*, который взахлеб соответствует любому символу ноль или больше, а затем использовать отрицанием класс символов [^&]*, чтобы соответствовать любому символу, но не &, ноль или более раз.

(pageToken)=([^&]*) 

DEMO

0

Вы регулярное выражение слишком жадным из-за .*. Однако для получения значений параметров вы можете использовать определенную функцию. Вот один вы можете использовать:

function getParameterByName(location, name) { 
 
     name = name.replace(/\]/g, "\\\]").replace(/\[/g, "\\\["); 
 
     var regex = new RegExp("[\/\?&]" + name + "=([^&#]*)"), 
 
     results = regex.exec(location); 
 
     return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 
 
    } 
 

 
    document.getElementById("res").innerHTML = getParameterByName("www.test.com/pageToken=xyz&foo=bar", "pageToken");
<div id="res" />

Просто измените name, чтобы получить требуемое значение паров из строк, как ваши.

Смежные вопросы