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 15:11

насчет этого:
https://www.google.ru/intl/ru/ads/ обрезает в www.google.com\

жестоко ошибся)))
https://www.google.ru/intl/ru/ads/ в www.google.ru или google.ru.
сейчас проверю, подходят ли предоставленные вами варианты,
спасибо!

Deff 21.07.2012 15:13

<input  size="100" type="text"  value="https://www.google.ru/intl/ru/ads/ //mc.yandex.ru/watch/528861" onblur="_F(this)" onchange="_F(this)" >

<script type="text/javascript">
function _F(a) {
function TST_lnk (str, p1, offset, s) {
  var d = p1.replace(/(?:https?\:)?\/\/([^\/]+)\/.*/ig,'$1');
  str=str.replace(p1,d);
  return str;
}
 var b=a.value.replace(/(?:^|\s)(\S+)(?=(?:\s|$))/igm,TST_lnk)
 a.value=b;
 
}
</script>

devote 21.07.2012 15:24

Deff,
решил внести свою лепту.. что-то у тебя всегда громоздкие коды получаются. все тоже самое делает эта рега и даже больше:
var a = "https://www.google.ru/intl/ru/ads/ //mc.yandex.ru/watch/528861";
 
alert( a.replace( /(?:(?:https?|file|ftp)?:?\/\/([^\/\s]+)|([^\/]+\.(?:ru|com|net|org|biz|info|рф)))[^\s]*/ig, '$1$2') );
дык вот объясни в чем смысл рекурсию делать?

RazZzeR 21.07.2012 15:31

Громоздкий код это не так страшно, но все же я за оптимизацию :)

если вводить mc.yandex.ru/watch/528861, то он так и остается mc.yandex.ru/watch/528861

тоесть правая часть не обрабается, если нет левой

RazZzeR 21.07.2012 15:32

Цитата:

Сообщение от devote (Сообщение 190489)
Deff,
решил внести свою лепту.. что-то у тебя всегда громоздкие коды получаются. все тоже самое делает эта рега и даже больше:
var a = "https://www.google.ru/intl/ru/ads/ //mc.yandex.ru/watch/528861";
 
alert( a.replace( /(?:(?:https?|file|ftp)?:?\/\/([^\/\s]+)|([^\/]+\.(?:ru|com|net|org|biz|info|рф)))[^\s]*/ig, '$1$2') );
дык вот объясни в чем смысл рекурсию делать?

а вот у тебя обрезалась :victory:

RazZzeR 21.07.2012 15:36

devote и Deff, буду должен :)

Deff 21.07.2012 15:39

Цитата:

Сообщение от devote
дык вот объясни в чем смысл рекурсию делать?

Дык Военный потому шо - делай раз - делай два(По разделениям всё ООП построено) -В первой части обрезаем по разделителю - во второй - уже трансформируем
*Вначале редко думаю об оптимизации - главное - незатенённость и результат , тем паче тут много желающих поправить

RazZzeR 09.08.2012 03:15

а можно сделать вот так:
скрипт возвращяет из всего текста только ссылку (можно и ссылки массивом)
?


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