2012-02-26 4 views
2

у меня будет URL, как это:получить строку запроса с использованием JavaScript и регулярных выражений

http://mysite.com/results.aspx?s=bcs&k= «Больница» ИЛИ «Офис» ИЛИ «Объект»

Я хочу, чтобы захватить все, что после того, как «к =», за исключением ' к =»сам ..

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

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

https: //developer.mozilla .org/ru/JavaScript/Reference/Global_Objects/String/match Прочитайте часть о возвращаемом значении. –

ответ

1

match возвращается два элемента. Первый - совпадение всего регулярного выражения. Второй элемент - группа захвата (что находится в пределах ()). Это то, что вы хотите, 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

Как это сделать? используя javascript? –

+0

Обновленный ответ немного подробнее. –

0

функция 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> 
Смежные вопросы