Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Проверка на наличии ссылки в поле, и ее обрезание (https://javascript.ru/forum/dom-window/30024-proverka-na-nalichii-ssylki-v-pole-i-ee-obrezanie.html)

RazZzeR 21.07.2012 14:11

Проверка на наличии ссылки в поле, и ее обрезание
 
Добрый день, :thanks:
Сразу к делу.
есть input, при изменении которого вызывается функция.
эту функцию надо сделать проверкой, введена ссылка в инпут, или это текст какойто,
и если это ссылка, то надо обрезать эту ссылку до домена,
например: http://google.com/ Обрезает в google.com
https://www.google.ru/intl/ru/ads/ обрезает в www.google.com

регуляры мне кажется не дано понять :-E

Заранее спасибо за помощь, буду проверять тему постоянно, это важно :)

devote 21.07.2012 14:21

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') );

Dim@ 21.07.2012 14:27

<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>

devote 21.07.2012 14:33

Dim@,
во намудрил, это не проще ли?
/(?:https?|file|ftp):\/\/([^\/\s]+)[^\s]*/ig

Dim@ 21.07.2012 14:35

devote,
проще - я давно реги не читал плохо помню - единственное что помню - это что \d - означает [0-9]:thanks:

RazZzeR 21.07.2012 14:38

А вот еще один момент.
вдруг человек введет ссылку без www, http, https, и другой левой частью?
т.е. google.com/intl/ru/ads/ обрезает в google.com

Dim@ 21.07.2012 14:38

devote,
люди совсем обленились - не хотят учить реги -
Цитата:

Мой мозг отказывается понимать рег-экспы
Цитата:

Помогите с регами очень нужно плз
Цитата:

Я вообще не понимаю регулярные выажения
:)

Dim@ 21.07.2012 14:39

RazZzeR,
чъя рега?

RazZzeR 21.07.2012 14:50

знать бы что это :))))

devote 21.07.2012 15:09

Цитата:

Сообщение от 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') );


Часовой пояс GMT +3, время: 16:39.