Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярное выражение (https://javascript.ru/forum/misc/23417-regulyarnoe-vyrazhenie.html)

kuzroman 22.11.2011 20:37

Регулярное выражение
 
Подскажите

имеем
var text="
[Цитата1] Это текст для проверки регулярного выражения [/Цитата] 
[Цитата0] Да уж. Если такой же, как Турист, то точно идти не стоит.(( Видимо, ДД решил просто подзаработать. [/Цитата] 
";


как можно найти то что находится внутри блоков [Цитата№][/Цитата], но с условием что если в этом блоке встретится еще [Цитата№] или [/Цитата] выводилось alert "Ошибка";

т.е. ПРАВИЛЬНО
var text="
[Цитата1] текс 1 [/Цитата] 
[Цитата0] текст2 [/Цитата] 
";


но ЕСЛИ
var text="
[Цитата1] текс [Цитата№] 1 [/Цитата] 
[Цитата0] текст2 [/Цитата] 
";

то ОШИБКА

Спасибо.

Pavel M. 23.11.2011 13:08

что-то типа этого ?

var text='[Цитата1] Это текст для проверки регулярного выражения [/Цитата]' +
  '[Цитата0] Да уж. Если такой же, как Турист, то точно идти не стоит.(( Видимо, ДД решил просто подзаработать. [/Цитата]';
  
  
  function getText(num) {
    var re = new RegExp('\\[Цитата' + num + '\\]([\\s\\S]+?)\\[\\/Цитата\\]'),
        m = text.match(re),
        result;
    
    if (m && m[1]) {
      result = m[1];
      return (/\[Цитата\d+\]/.test(result) ? false: result);
    }
  }
 
  alert(getText(1));
  alert(getText(0));


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