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));
Мой вариант не идеален, но что-то он может...