2015-04-09 2 views
0

Мне нужно очистить URL-адрес от веб-сайта, который находится в пределах некоторого кода javascript.Необходимо очистить URL-адрес от веб-страницы

<script type="text/javascript"> 
    (function() { 
     // somewhere.. 
     $.get("http://someurl.com?q=34343&b=343434&c=343434")... 
    }); 
</script> 

Я знаю, что URL-адрес начинается с http://someurl.com?q=, и она должна иметь, по крайней мере, второй параметр запроса (&b=) внутри, но остальная часть содержания неизвестно.

Первоначально я попробовал jsoup, однако это не подходит для этой задачи. Ручная выборка страницы, а затем использование шаблона регулярного выражения на ней также не является предпочтительным вариантом, так как страница огромна. Что я могу сделать, чтобы получить URL-адрес быстро и безопасно?

+0

ИМХО, нет ничего плохого в использовании регулярных выражений на огромной странице. Это будет только немного медленнее. – JonasCz

ответ

0

Вы можете использовать это регулярное выражение

/\$\.get\("(http:\/\/someurl\.com\?q=[\w.\-%#\/]*&b=[\w.\-%&=\/]*)"\)/g 

Это регулярное выражение будет искать непосредственно для этой строки:

$.get("http://someurl.com?q= 

Это позволит затем любое количество URL-допустимых символов произойти в качестве значения ц.

Это будет выглядеть, чтобы соответствовать

&b= 

, а затем снова любому количеству допустимых символов следует противоборствующей кавычка. Я тестировал его с

MATCH - $.get("http://someurl.com?q=34343&b=343434&c=343434") 
MATCH - $.get("http://someurl.com?q=34343&b=13a43&k=343434&c2=something") 
FAIL - $.get("http://someurl.com?q=34343&c=343434&b=343434") 
FAIL - $.get("http://someurl.com?a=34343&b=343434=343434") 

Если вы хотите, чтобы вернуть первый результат вы можете удалить глобальный идентификатор с конца

/\$\.get\("(http:\/\/someurl\.com\?q=[\w.\-%#\/]*&b=[\w.\-%&=\/]*)"\)/ 
Смежные вопросы