Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   не работает regexp test (https://javascript.ru/forum/misc/26586-ne-rabotaet-regexp-test.html)

asmend 15.03.2012 21:20

Цитата:

Сообщение от Pavel M. (Сообщение 163255)
попробуйте так

var str='0123456789';
var re=/(?!34)..56/;
if (re.test(str))
  alert('Yes'); // перед 56 нет 34
else
  alert('No');  // перед 56 есть 34


str='0123356789';
if (re.test(str))
  alert('Yes'); // перед 56 нет 34
else
  alert('No');  // перед 56 есть 34


А еще такой вопрос, как сделать просто что если нет в строке 34, то true. Если есть то false?

Pavel M. 15.03.2012 21:55

это уже вроде бы было выше в теме
Цитата:

Сообщение от devote (Сообщение 163013)
var str='0123456789';
if ( str.indexOf('34') == -1 )
alert('Yes');
else
alert('No');


asmend 15.03.2012 22:12

нужно регуляркой обязательно

melky 15.03.2012 22:29

alert( 
*!*
     !/34/.test( 
*/!*
          prompt( 
               'Enter the string', 
               '3246<34>590'
          )
     ) 
);

asmend 15.03.2012 22:51

Цитата:

Сообщение от melky (Сообщение 163405)
alert( 
*!*
     !/34/.test( 
*/!*
          prompt( 
               'Enter the string', 
               '3246<34>590'
          )
     ) 
);

Про то что бы не изменять результат функции на противоположный я тоже писал что нельзя

asmend 16.03.2012 01:34

Я понимаю для чего регулярные выражения, просто есть один скрипт который изменить нет возможности можно менять только само регулярное выражение что бы добиться нужного результата.
Что невозможно сделать мне кто-то уже вроде писал на счет предидущего примера, а оказалось возможно )

Pavel M. 16.03.2012 12:11

Цитата:

Сообщение от asmend
Про то что бы не изменять результат функции на противоположный я тоже писал что нельзя

может быть так устроит
var str = '0123456789';
var re = /^(?!.*34)/;

if (re.test(str))
  alert('Yes'); // нет 34
else
  alert('No');  // есть 34


str = '0123356789';


if (re.test(str))
  alert('Yes'); // нет 34
else
  alert('No');  // есть 34

Pavel M. 16.03.2012 13:20

Цитата:

Сообщение от Maxmaxmахimus (Сообщение 163486)
Pavel M., а что он вернет если после начала не следует 34?

см. пример выше - вернет true

asmend 16.03.2012 17:12

Pavel M.,
Спасибо, это то что надо) Сам бы еще наверно не скоро додумался )


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