не работает regexp test
var str='0123456789';
var re=/(?!34)/;
if (re.test(str))
alert('Yes');
else
alert('No');
почему в результате получается в итоге true всегда? Должно же быть true если только в строке не окажется 34. |
var str='0123456789';
if ( str.indexOf('34') == -1 )
alert('Yes');
else
alert('No');
|
Так не подойдет, это я для примера написал, нужно как-то заставить работать тот пример
|
var str='0123456789';
var re=/34/;
if (!re.test(str))
alert('Yes');
else
alert('No');
|
К сожалению так тоже не подойдет ))
Нужно именно что бы не было определенного слова в строке |
Цитата:
var str='0123456789',
re=/(?=34)/;
if (re.test(str))
alert('В строке есть 34');
else
alert('В строке нет 34');
str='012356789';
if (re.test(str))
alert('В строке есть 34');
else
alert('В строке нет 34');
|
Цитата:
var str='0123456789';
var re=/(?=34)56/;
if (re.test(str))
alert('Yes');
else
alert('No');
|
Нужно что бы этот пример заработал как и должен. Если в строке перед "56" нет "34", то возвращал true. Если в строке перед "56" есть "34" то false. Я не понимаю почему это не работает
var str='0123456789';
var re=/(?!34)56/;
if (re.test(str))
alert('Yes');
else
alert('No');
|
Так же как я писал это нужно сделать обязательно с помощью regexp test и не меняя возвращаемого результата на противоположный (имею ввиду не делать if (!re.test(str)) )
|
asmend,
ну тогда тебе смело могу сказать что в регах нет возможности проверять отрицания. |
Цитата:
|
Цитата:
|
Как раз слово, символ пишется так [^a]
|
Цитата:
возьмем пример найти test если за буквой t не идет 25 var re = /test(?!25)/; alert( re.exec( "test25" ) ); // результат null не найдено найти слово tes с любым окончанием, но не находить если следует 25: var re = /tes.?(?!25)/; alert( re.exec( "test25" ) ); // результат tes, тоесть всеравно выдал, хотя мы дали понять что не должно быть. Вывод из всего этого, то что он проверяет не целое слово а лишь последний символ перед указанным правилом. |
Цитата:
|
Цитата:
|
Цитата:
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) два символа - значит две точки |
Цитата:
А еще такой вопрос, как сделать просто что если нет в строке 34, то true. Если есть то false? |
это уже вроде бы было выше в теме
Цитата:
|
нужно регуляркой обязательно
|
alert(
*!*
!/34/.test(
*/!*
prompt(
'Enter the string',
'3246<34>590'
)
)
);
|
Цитата:
|
Я понимаю для чего регулярные выражения, просто есть один скрипт который изменить нет возможности можно менять только само регулярное выражение что бы добиться нужного результата.
Что невозможно сделать мне кто-то уже вроде писал на счет предидущего примера, а оказалось возможно ) |
Цитата:
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.,
Спасибо, это то что надо) Сам бы еще наверно не скоро додумался ) |
| Часовой пояс GMT +3, время: 16:33. |