2013-09-06 11 views
2

Вот мой переменной, с которой я хочу, чтобы извлечь только URL, например в данном случае я хочу в конце результат: http://url.com/index.php/foo/bar/new/key/34941cd947592adb1594b6f649468a33/Извлечение URL из строки Javascript

var variable = "function onclick(event) { setLocation('http://url.com/index.php/foo/bar/new/key/34941cd947592adb1594b6f649468a33/')}" 
+2

Почему вы хранящий JavaScript в виде строки в переменной JavaScript? Функции также являются объектами, вы можете просто назначить их переменным 'var foo = function() {}' – elclanrs

+0

@elclanrs Если бы он сделал это как функцию вместо строки, как бы он извлек из нее URL? – Barmar

+0

@Barmar Я думаю, что он хотел спросить, как эта переменная закончилась с куском кода внутри. –

ответ

11

Используйте это:

var testUrl = variable.match(/'(http:[^\s]+)'/), 
    onlyUrl = testUrl && testUrl[1]; 

Переменная onlyUrl содержит извлеченный URL-адрес или null.

EDIT:

Предыдущее просто ответить на ОП. После обновления позаботиться о https:

var testUrl = variable.match(/'(https?:[^\s]+)'/), 
    onlyUrl = testUrl && testUrl[1]; 
+0

Ницца Даниил, спасибо вам большое! – sh00pac

+1

+1. Я улучшил ответ, не полагаясь на «RegExp. $ 1» и убедившись, что ошибок нет, если URL нельзя сопоставить. –

+0

может быть лучше использовать '.exec' в этом случае – DGS

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