Показать сообщение отдельно
  #3 (permalink)  
Старый 27.03.2012, 08:44
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Magneto, рискну предложить свой вариант (хоть и не ручаюсь за него после бессонной ночи). По сути, www идёт либо в самом начале (если протокол не указан), либо после двух слешей. Чтобы не сломать адрес, который идёт потом, надо задуматься о количестве точек до пути на сервере (от которого host-имя отделено слешем). Если там только одна точка, то www - это название сайта, если больше - это ненужный нам архаизм.

function replace_www(str) {
 return str.replace(/(?:((?:\/\/)|^)www\.)(?=[^/]*?\.)/i, "$1");
}
alert(replace_www("www.site.com"));
alert(replace_www("www.sitewww.com"))
alert(replace_www("www.ru"));
alert(replace_www("http://yandex.ru"));


Если же вам (вероятнее всего ) нужна замена в строке всех ссылок, то как-то так:

function replace_www(str) {
 return str.replace(/(?:((?:(?:\/\/)|^)|\s)www\.)(?=[^/\s$]*?\.)/gi, "$1");
};
str= "www.org.ua, www.ru, www.ru/savva.ss, www.sitewww.ru, http://www.yandex.ru";
alert(replace_www(str));


Мой вариант не идеален, но что-то он может...
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)

Последний раз редактировалось trikadin, 27.03.2012 в 08:53.
Ответить с цитированием