Javascript.RU

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

Помогите разобраться с регуляркой
Уже мозг кипит, не понимаю, что не так. Помогите разобраться пожалуйста.
вот к примеру такой код работает, шаблон подходит

rmask1 = /^(?:\d|\+|-){0,3}$/;
if (rmask1.test(-56)){alert('OK');}
else{alert(rmask1)}


Но мне нужно вставить в него переменную, значит надо задавать паттерн в другом виде... экранируем всё и вся

rmask1 = new RegExp('\^\(\?:\\d\|\\\+\|-\){0,3}\$');
if (rmask1.test(-56)){alert('OK');}
else{alert(rmask1)}


... шаблон не подходит ... что-то не так.
Ответить с цитированием
  #2 (permalink)  
Старый 26.06.2012, 15:35
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Что он должен найти? Какой текст?
__________________
оляля, ололо
Ответить с цитированием
  #3 (permalink)  
Старый 26.06.2012, 15:47
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

shtormIK,
(?:\d|\+|-)
// =>
[+\d-] /* или */ [\d+-]
// =>
new RegExp("[+\\d-]"); // ещё косая черта перед косой чертой.

alert( true === new RegExp("^[+\\d-]{0,3}$").test(-56) === new RegExp("^[+\\d-]{0,3}$").test(+56)  );

Последний раз редактировалось melky, 26.06.2012 в 15:50.
Ответить с цитированием
  #4 (permalink)  
Старый 26.06.2012, 15:59
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Интересно, у меня второй пример топикстартера выдаёт 'OK', я не понимаю, в чём проблема.
Ответить с цитированием
  #5 (permalink)  
Старый 26.06.2012, 16:37
Новичок на форуме
Отправить личное сообщение для shtormIK Посмотреть профиль Найти все сообщения от shtormIK
 
Регистрация: 26.06.2012
Сообщений: 3

Ну вообще, насчёт экранирования вот здесь прочитал...
а маска должна быть типа ###.99 или 999.9
где # это либо число, либо знак + либо знак - либо ничего
9 это число, либо ничего
количество решёток или девяток в маске может быть и другим.
Я делал пока просто для ### где кол-во решёток 3
Ответить с цитированием
  #6 (permalink)  
Старый 26.06.2012, 16:43
Новичок на форуме
Отправить личное сообщение для shtormIK Посмотреть профиль Найти все сообщения от shtormIK
 
Регистрация: 26.06.2012
Сообщений: 3

Сообщение от oneguy Посмотреть сообщение
Интересно, у меня второй пример топикстартера выдаёт 'OK', я не понимаю, в чём проблема.
у меня выскакивает в алерте 2 вариант...
Ответить с цитированием
  #7 (permalink)  
Старый 26.06.2012, 20:02
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Сообщение от shtormIK Посмотреть сообщение
у меня выскакивает в алерте 2 вариант...
Каким браузером вы пользуетесь?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться ... Я новенький в JS ... bogong Общие вопросы Javascript 23 27.12.2011 19:20
Помогите разобраться с Bubbling HawkOFF Элементы интерфейса 10 09.08.2011 22:43
Помогите пожалуйста разобраться Kupu4 Ваши сайты и скрипты 0 21.01.2010 10:44
Помогите разобраться с галереей IMAGIN yana_studio Общие вопросы Javascript 4 12.12.2009 17:24
Помогите разобраться с задачей (поиск строки) Absinthe Ваши сайты и скрипты 6 07.12.2009 09:17