Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   replace регулярка (https://javascript.ru/forum/misc/40263-replace-regulyarka.html)

Redya69 30.07.2013 01:36

replace регулярка
 
Подскажите, пожалуйста.
Цель, удалить из строки все кроме "a-zA-Zа-яА-Я.-_()[]" и пробелов
Код:
var text = "old!\"№;%ХЪ{}][--_()/.";
alert(text.replace(/[^a-zA-Zа-яА-Я.-_()[]/gi, ""));

Результат: old;ХЪ][_()/.
Оставил ; / и наверняка оставит что-то еще. Помогите написать регулярочку.

рони 30.07.2013 02:03

Redya69,
не_тире в конец квадратных скобок и не_квадратные скобки в юникоде.
var text = "old!\"№;%ХЪ{}][--_()/.";
alert(text.replace(/[^a-zA-Zа-яА-Я._()\u005B\u005D\s-]/gi, ""));

Redya69 30.07.2013 15:35

Ну и дебри....спасибо

рони 30.07.2013 15:42

Redya69,
для полного счастья ещё добавить ё и убрать большие буквы -- у вас флаг i — не различать строчные и заглавные буквы
var text = "old!\"№;%ХЪ{}][--_()/.";
alert(text.replace(/[^a-zа-яё._()\u005B\u005D\s-]/gi, ""));

Deff 31.07.2013 01:38

[^\w\W\(\)\u005B\u005D\s-]

Deff 31.07.2013 01:43

Кстать тут на мегабайтных (~2), текстах пришлось в старых ИЕ тестить разные регулярки, так вот там лучше либо брать по строкам и парсить хитрую регу, либо разбить на простые реги - и парсить до конца, но несколько раз, - иначе браузер виснет тотально


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