Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.03.2012, 04:12
Интересующийся
Отправить личное сообщение для asmend Посмотреть профиль Найти все сообщения от asmend
 
Регистрация: 14.03.2012
Сообщений: 14

не работает regexp test
var str='0123456789';
var re=/(?!34)/;

if (re.test(str))
alert('Yes');
else
alert('No');


почему в результате получается в итоге true всегда? Должно же быть true если только в строке не окажется 34.
Ответить с цитированием
  #2 (permalink)  
Старый 14.03.2012, 05:10
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

var str='0123456789';
if ( str.indexOf('34') == -1 )
alert('Yes');
else
alert('No');
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 14.03.2012, 05:15
Интересующийся
Отправить личное сообщение для asmend Посмотреть профиль Найти все сообщения от asmend
 
Регистрация: 14.03.2012
Сообщений: 14

Так не подойдет, это я для примера написал, нужно как-то заставить работать тот пример
Ответить с цитированием
  #4 (permalink)  
Старый 14.03.2012, 05:23
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

var str='0123456789';
var re=/34/;
 
if (!re.test(str))
alert('Yes');
else
alert('No');
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #5 (permalink)  
Старый 14.03.2012, 05:34
Интересующийся
Отправить личное сообщение для asmend Посмотреть профиль Найти все сообщения от asmend
 
Регистрация: 14.03.2012
Сообщений: 14

К сожалению так тоже не подойдет ))
Нужно именно что бы не было определенного слова в строке
Ответить с цитированием
  #6 (permalink)  
Старый 14.03.2012, 10:55
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

Сообщение от asmend
Должно же быть true если только в строке не окажется 34.
поменяйте на позитивный просмотр вперед - все получится

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');
Ответить с цитированием
  #7 (permalink)  
Старый 14.03.2012, 16:40
Интересующийся
Отправить личное сообщение для asmend Посмотреть профиль Найти все сообщения от asmend
 
Регистрация: 14.03.2012
Сообщений: 14

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


var str='0123456789';
var re=/(?=34)56/;

if (re.test(str))
alert('Yes');
else
alert('No');
Ответить с цитированием
  #8 (permalink)  
Старый 14.03.2012, 22:13
Интересующийся
Отправить личное сообщение для asmend Посмотреть профиль Найти все сообщения от asmend
 
Регистрация: 14.03.2012
Сообщений: 14

Нужно что бы этот пример заработал как и должен. Если в строке перед "56" нет "34", то возвращал true. Если в строке перед "56" есть "34" то false. Я не понимаю почему это не работает

var str='0123456789';
var re=/(?!34)56/;
if (re.test(str))
alert('Yes');
else
alert('No');
Ответить с цитированием
  #9 (permalink)  
Старый 14.03.2012, 22:14
Интересующийся
Отправить личное сообщение для asmend Посмотреть профиль Найти все сообщения от asmend
 
Регистрация: 14.03.2012
Сообщений: 14

Так же как я писал это нужно сделать обязательно с помощью regexp test и не меняя возвращаемого результата на противоположный (имею ввиду не делать if (!re.test(str)) )
Ответить с цитированием
  #10 (permalink)  
Старый 14.03.2012, 23:48
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

asmend,
ну тогда тебе смело могу сказать что в регах нет возможности проверять отрицания.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
onResize() для DIV-a faiwer Общие вопросы Javascript 6 26.06.2012 15:27
regexp не работает экранирование точки Spice Общие вопросы Javascript 2 10.11.2011 13:41
Не работает код внутри циклов DZHETIGAPA Events/DOM/Window 1 21.06.2011 01:03
Динамическая HTML форма (FireFox - работает, IE - не работает) dm1tr1y Общие вопросы Javascript 10 11.12.2009 15:59
Скрипт меню-гармошки работает выборочно Extern Элементы интерфейса 2 23.02.2009 15:32