21.07.2012, 14:11
|
|
Кандидат Javascript-наук
|
|
Регистрация: 11.12.2011
Сообщений: 146
|
|
Проверка на наличии ссылки в поле, и ее обрезание
Добрый день,
Сразу к делу.
есть input, при изменении которого вызывается функция.
эту функцию надо сделать проверкой, введена ссылка в инпут, или это текст какойто,
и если это ссылка, то надо обрезать эту ссылку до домена,
например: http://google.com/ Обрезает в google.com
https://www.google.ru/intl/ru/ads/ обрезает в www.google.com
регуляры мне кажется не дано понять
Заранее спасибо за помощь, буду проверять тему постоянно, это важно
|
|
21.07.2012, 14:21
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
var a = "Сразу к делу.\
есть input, при изменении которого вызывается функция.\
эту функцию надо сделать проверкой, введена ссылка в инпут, или это текст какойто,\
и если это ссылка, то надо обрезать эту ссылку до домена,\
например: http://google.com/ Обрезает в google.com\
https://www.google.ru/intl/ru/ads/ обрезает в www.google.com\
ftp://hehe.ru/, file://localhost/";
alert( a.replace( /(?:https?|file|ftp):\/\/([^\/\s]+)[^\s]*/ig, '$1') );
Последний раз редактировалось devote, 21.07.2012 в 14:38.
|
|
21.07.2012, 14:27
|
|
Профессор
|
|
Регистрация: 21.04.2012
Сообщений: 951
|
|
<input id='input' type='text' onchange='prov()'>
<script type='text/javascript'>
var reg = /(http\:\/\/)|(https\:\/\/)|(file\:\/\/\/)|(ftp\:\/\/)/img;
function prov(){
input = document.getElementById("input");
input.value = input.value.replace(reg,"");
}
</script>
|
|
21.07.2012, 14:33
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Dim@,
во намудрил, это не проще ли?
/(?:https?|file|ftp):\/\/([^\/\s]+)[^\s]*/ig
|
|
21.07.2012, 14:35
|
|
Профессор
|
|
Регистрация: 21.04.2012
Сообщений: 951
|
|
devote,
проще - я давно реги не читал плохо помню - единственное что помню - это что \d - означает [0-9]
|
|
21.07.2012, 14:38
|
|
Кандидат Javascript-наук
|
|
Регистрация: 11.12.2011
Сообщений: 146
|
|
А вот еще один момент.
вдруг человек введет ссылку без www, http, https, и другой левой частью?
т.е. google.com/intl/ru/ads/ обрезает в google.com
|
|
21.07.2012, 14:38
|
|
Профессор
|
|
Регистрация: 21.04.2012
Сообщений: 951
|
|
devote,
люди совсем обленились - не хотят учить реги -
Цитата:
|
Мой мозг отказывается понимать рег-экспы
|
Цитата:
|
Помогите с регами очень нужно плз
|
Цитата:
|
Я вообще не понимаю регулярные выажения
|
|
|
21.07.2012, 14:39
|
|
Профессор
|
|
Регистрация: 21.04.2012
Сообщений: 951
|
|
RazZzeR,
чъя рега?
|
|
21.07.2012, 14:50
|
|
Кандидат Javascript-наук
|
|
Регистрация: 11.12.2011
Сообщений: 146
|
|
знать бы что это )))
|
|
21.07.2012, 15:09
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Сообщение от RazZzeR
|
А вот еще один момент.
вдруг человек введет ссылку без www, http, https, и другой левой частью?
т.е. google.com/intl/ru/ads/ обрезает в google.com
|
ну молодцы, раз так введут.. откуда же реги знать домен это или фича какая нить. Можно конечно прописать правила на верхние домены:
var a = "google.com/intl/ru/ads/ обрезает в google.com\
например: http://google.com/ Обрезает в google.com\
https://www.google.ru/intl/ru/ads/ обрезает в www.google.com\
ftp://hehe.ru/, file://localhost/ http://президент.рф/sdf/ www.google.ru/intl/ru/ президент.рф/sdf/";
alert( a.replace( /(?:(?:https?|file|ftp)?:?\/\/([^\/\s]+)|([^\/]+\.(?:ru|com|net|org|biz|info|рф)))[^\s]*/ig, '$1$2') );
Последний раз редактировалось devote, 21.07.2012 в 15:27.
|
|
|
|