получить строку запроса, используя JavaScript и регулярное выражение - PullRequest
2 голосов
/ 26 февраля 2012

У меня будет мой URL как это:

http://mysite.com/results.aspx?s=bcs&k="Hospital" ИЛИ "Офис" ИЛИ "Объект"

Я хочу получить все после 'k =', исключая 'k = 'само по себе ..

И это регулярное выражение частично работает .. но он захватывает все с k два раза ..

    <script type="text/javascript">
document.write('<p>Showing Results for all' + 
window.location.href.match(/[?&]k=([^&#]+)/) || [] + '</p>');
</script>

Ответы [ 3 ]

1 голос
/ 26 февраля 2012

match возвращает два элемента. Первый - это совпадение всего регулярного выражения. 2-й элемент - это группа захвата (что находится в пределах ()). Это то, что вы хотите, 2-й элемент в массиве.

<script type="text/javascript">
    var result = window.location.href.match(/[?&]k=([^&#]+)/);

    var word = "";

    if(result) word = result[1];
</script>

http://jsfiddle.net/7WcMc/

0 голосов
/ 26 февраля 2012

Функция соответствия Javascript возвращает массив совпадений в случае успеха или ноль, если совпадений не найдено.

В вашем случае первое совпадение - это целая строка, второе - обратная ссылка на ([^ & #] +)

Наверное, лучше так:

<script type="text/javascript">
    var m = window.location.href.match(/[?&]k=([^&#]+)/);
    document.write('<p>Showing Results for all' + ((m != null) ? m[1] : '') ++ '</p>');
</script>
0 голосов
/ 26 февраля 2012

Это должно работать:

var match = location.href.match(/\&k\=(.+)/)[1];

http://jsfiddle.net/elclanrs/2aPCh/1/

...