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

Vampir3 16.01.2013 16:35

снова регулярка :)
 
Всем привет
нужна регулярка удаляющая из строки кусок текста вот такого вида:

{текст} и [текст]

в тексте в скобках могут быть только цифры, пробелы, рус. и англ. буквы

сам я написал вот так, но хотелось бы сделать 1 регулярку на оба случая (тоесть удалаящий текст и в квадратных скобках и математических)

var a = "[тут лишний текст] привет";
var b = "{тут лишний текст2} привет";

alert(a.replace(/\[+[a-zA-Zа-яА-Я\s\d]+\]/, ''));
alert(b.replace(/\{+[a-zA-Zа-яА-Я\s\d]+\}/, ''));

рони 16.01.2013 17:17

Vampir3,
var a = "[тут лишний текст] привет {тут лишний текст2} привет";
  alert(a.replace(/[\u005B\u007B][^\u005D\u007D]*[\u005D\u007D]/g, ''));

ksa 17.01.2013 14:09

рони, так вроде "понятнее"?

var a = "[тут лишний текст] привет {тут лишний текст2} привет";
 alert(a.replace(/[\[\{][^\]\}]*[\]\}]/g, ''));

рони 17.01.2013 14:35

ksa,
некоторые ide "засомневаются" в правильности такого кода )))

ksa 17.01.2013 15:01

рони, а в каких еще случаях лучше использовать коды символов, которые можно запросто набрать "с клавиатуры"?
Или для каких именно символов такое делать?

рони 17.01.2013 15:20

ksa,
для скобок [] {} ()

ksa 17.01.2013 15:22

рони, понял. :yes:
Ранее вроде хватало экранирования...

Vampir3 17.01.2013 20:28

var a = "[тут лишний текст] привет {тут лишний текст2} привет";
alert(a.replace(/(\[[a-zA-Zа-яА-Я\s\d]+\])|(\{[a-zA-Zа-яА-Я\s\d]+\})/g, ''));


спасибо, разобрался) вот еще вариант)

ksa 18.01.2013 08:55

Цитата:

Сообщение от Vampir3
вот еще вариант

Так будет покороче ;)

var a = "[тут лишний текст] привет {тут лишний текст2} привет";
alert(a.replace(/(\[[^\]]*\])|(\{[^\}]*\})/g, ''));


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