насчет этого:
https://www.google.ru/intl/ru/ads/ обрезает в www.google.com\ жестоко ошибся))) https://www.google.ru/intl/ru/ads/ в www.google.ru или google.ru. сейчас проверю, подходят ли предоставленные вами варианты, спасибо! |
<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> |
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') );дык вот объясни в чем смысл рекурсию делать? |
Громоздкий код это не так страшно, но все же я за оптимизацию :)
если вводить mc.yandex.ru/watch/528861, то он так и остается mc.yandex.ru/watch/528861 тоесть правая часть не обрабается, если нет левой |
Цитата:
|
devote и Deff, буду должен :)
|
Цитата:
*Вначале редко думаю об оптимизации - главное - незатенённость и результат , тем паче тут много желающих поправить |
а можно сделать вот так:
скрипт возвращяет из всего текста только ссылку (можно и ссылки массивом) ? |
Часовой пояс GMT +3, время: 08:35. |