Отказ от ответственности: это чрезвычайно наивная реализация валидации URL, написанной в буквальном javascript regex, с целью объяснения идеи, стоящей за такой попыткой, этот код не предназначен для производственного использования в любом качестве.
Проверка URL с помощью регулярных выражений:
Следующий код будет работать для сечения случаев.Вы хотите убедиться, что эти случаи соответствуют вашим потребностям.URL - это широкие и разнообразные существа, включая возможное использование символов utf-8, которые не описаны в базовом наборе ниже.В этих случаях вы захотите узнать больше о регулярных выражениях (в любом случае, в любом случае стоит заняться разработкой javascript).
var urls = ['www.someurl.com', // true
'www.someurl.net', // true
'google.org', // true
'not a url', // false
'someone@funky.com', // false
'http://www.yahoo.com', // true
'https://www.clutter.org', // true
'ftp://test.fail', // false
'http://this.is.a/path/to/my/resource.html', // true
'adress-with-hyphens.org']; // true
for( var i = 0, url; url = urls[i++]; ){
console.log(url, /^(https?:\/\/)?([\w\d\-_]+\.)+\/?/.test(url));
}
, чтобы объяснить этот код :
/
запускает регулярное выражение. (
открывает группу выбора. http
- строка для поиска. s?
делает часть строки s
необязательной. :
- поиск символа двоеточия. \/
- это escape-символ, за которым следует символ для поиска (/
), это полезно во многих случаях. )?
делает группу необязательной.
Следующая группа содержит поиск любого слова, цифры, дефиса или символа подчеркивания (один или несколько +
), за которым следует .
(\.
).с последующим необязательным /
./
в конце закрывает литерал регулярного выражения.test
- это метод для любого объекта регулярного выражения, чтобы проверить, проходит ли его строка.Строка для проверки дается в качестве единственного аргумента.