не работает 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, время: 09:52. |