06.02.2014, 10:38
|
Новичок на форуме
|
|
Регистрация: 06.02.2014
Сообщений: 3
|
|
Помощь с replace - работает только 1 раз
Речь идёт не о /\+/g вроде как бы про данный флаг я понял.
Немного видоизменяю ссылки с парсинга ютюба.
код:
video_link = response.data.items[i].title.replace('/', '-'); //заменяю слеш на дефис
далее все пробелы хочу заменить на дефис
делаю это так
video_link = response.data.items[i].title.replace(/\ /g, '-');
но работает только что написано выше.
а ещё мне нужно удалить все лишние символы скобки, точки, запятые и т.д.
но пока что не допёр как, подскажите!)
|
|
06.02.2014, 10:42
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
Сообщение от daranger
|
все пробелы хочу заменить на дефис
|
Цитата:
|
\s Найдет любой пробельный символ, включая пробел, табуляцию, переводы строки и другие юникодные пробельные символы. Например, /\s\w*/ найдет ' bar' в "foo bar."
|
http://javascript.ru/RegExp
|
|
06.02.2014, 11:10
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,225
|
|
Сообщение от daranger
|
Немного видоизменяю ссылки с парсинга ютюба.
код:
video_link = response.data.items[i].title.replace('/', '-'); //заменяю слеш на дефис
далее все пробелы хочу заменить на дефис
делаю это так
video_link = response.data.items[i].title.replace(/\ /g, '-');
но работает только что написано выше.
|
Делай все разом
var val='111 222/333';
alert(val.replace(/\s|\//g,'-'));
|
|
06.02.2014, 11:12
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,225
|
|
Сообщение от daranger
|
а ещё мне нужно удалить все лишние символы скобки, точки, запятые и т.д.
но пока что не допёр как, подскажите
|
Как вариант...
var val='111.222,333(444)';
alert(val.replace(/[.,()]/g,''));
|
|
06.02.2014, 11:41
|
Новичок на форуме
|
|
Регистрация: 06.02.2014
Сообщений: 3
|
|
Спасибо большое, разобрался, то что нужно, в дополнение подскажите как удалить повторяющиеся дефисы и дефисы вначале и в конце
|
|
06.02.2014, 12:26
|
Новичок на форуме
|
|
Регистрация: 06.02.2014
Сообщений: 3
|
|
Всем спасибо, тему можно закрывать, последнее решил так:
video_link = video_link.replace(/(^\-*)|(\-*)$/g, ''); //удаляем дефис вначале и в конце
video_link = video_link.replace(/\-+/g,"-"); //удаляем повторяющиеся дефисы
|
|
06.02.2014, 13:57
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от daranger
|
Всем спасибо, тему можно закрывать, последнее решил так:
video_link = video_link.replace(/(^\-*)|(\-*)$/g, ''); //удаляем дефис вначале и в конце
video_link = video_link.replace(/\-+/g,"-"); //удаляем повторяющиеся дефисы
|
Символ " -" обретает свою силу внутри диапазона. В иных случаях экранировать не нужно
Это - не диапазоны.
alert( '1---2'.replace(/-+/g, "-") );
alert( '1---2'.replace(/[-]+/g, "-") );
alert( '1-,-2'.replace(/[,-]+/g, "-") );
15.10.2.16, Примечание 3.
|
|
06.02.2014, 19:21
|
Профессор
|
|
Регистрация: 23.10.2010
Сообщений: 2,718
|
|
|
|
|
|