Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос по replace. Как заменить все точки в строке? (https://javascript.ru/forum/misc/8082-vopros-po-replace-kak-zamenit-vse-tochki-v-stroke.html)

Pluto 06.03.2010 11:36

Вопрос по replace. Как заменить все точки в строке?
 
Надеюсь на помощь гуру.
Сам пока не очеь силен в яваскриптах. Все юзаю на примерах. Встала задача, нужно удалить все точки в строке из чисел и точек.
Дано: строка "1.258.235"
Нужно получить: "1258235"

пробовал делать так
s = "1.258.235"
s = s.replace(/./g,"");

почему то выдает пустую строку
Подозреваю, что точка в данном случае используется как регулярное выражение. а не как символ для поиска и замены.
Как сделать правильно?

Tim 06.03.2010 12:10

Точка это спец-символ в регулярных выражениях который совпадает с любым символом. Поэтому строка и пустая. Точку нужно экранировать, чтобы она не считалась спец-символом.

alert("1.258.235".replace(/\./g, ""));

Pluto 06.03.2010 12:17

Спасибо!
А вы не могли бы прокомментировать мое решение. Пока ждал ответа - экспериментировал и опытным путем пришел вот к этому:

alert("58.235".replace(/[.]/g, ""));


но подозреваю что это не совсем корректно.

B@rmaley.e><e 06.03.2010 12:32

Внутри [] символ "." трактуется именно как точка, а не спец-символ. Аналогично и с другими знаками: +*?$^()
alert('текст +*?$^(). текст'.match(/[+*?$^(.)]/g));

Tim 06.03.2010 15:00

Pluto,
Есть книга - Регулярные выражения. Дж. Фридл.
Для того чтобы в этой теме методом тыка разобраться вся жизнь уйдёт.

B@rmaley.e><e,
Почему мой скрипт нельзя "Запустить!"? Каким BB-кодом это делается?

PeaceCoder 06.03.2010 15:07

[_js run]

[/js]
Tim, разве это не юзал ? "_" убрать

http://javascript.ru/formatting

B@rmaley.e><e 06.03.2010 15:08

Tim, [js run]code[/js]

Tim 06.03.2010 15:13

PeaceCoder,
B@rmaley.e><e,
Спасибо, не знал. Помню, что тема о новой подсветке синтаксиса мелькала, но я не обратил на неё внимания.

Pluto 08.03.2010 09:51

Всем спасибо за разъяснения :)

Nikoole 07.07.2011 13:21

Ребят, подскажите пожалуйста, как заменить все "\" на "\\".
Попробовал следовать советам в этом топике - но не удается разобраться.

Sweet 07.07.2011 13:46

.replace(/\\/g, "\\\\")

Nikoole 07.07.2011 14:09

Sweet,
спасибо огромное :) Самое главное как только не пробовал (от лени вникать - редко мне нужны регэкспы)...

TuJIb 21.04.2017 11:43

Здравствуйте!
Тема конечно старая...как мир...но надеюсь что кто-то ответит.
Почему
x = "....555....6"
x.replace(/\../g,'.') //"..555..6"
x.replace(/\../g,'.').replace(/\../g,'.') //".555.6"

Я пока конечно решил этот вопрос простым перебором строки, если есть '..' то реплейс, если нет, то выход из цикла
Но по моему должен быть стандартный (через регулярки) выход что бы 1 командой сразу заменить все дублирующиеся точки на одну...

Dilettante_Pro 21.04.2017 12:31

alert(".....555....6".replace(/(\.){2,}/g,'.'));

Alexandroppolus 21.04.2017 12:32

TuJIb,

x.replace(/\.{2,}/g,'.')


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