Javascript.RU

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

регулярное выражение
всем привет!
помогите составить регулярное выражение на телефон, точнее на возможное присутствие скобок

в телефоне может присутствовать цифры в скобках, например (921), но не более 1 раза

как записать это в виде регулярного выражения?

Регулярное выражение должно быть в формате RegExp
Ответить с цитированием
  #2 (permalink)  
Старый 19.06.2010, 15:27
Аспирант
Отправить личное сообщение для Ultimatum Посмотреть профиль Найти все сообщения от Ultimatum
 
Регистрация: 18.06.2010
Сообщений: 63

пример телефона приведите.
8(925)1234567
8(925)123-45-67
7(925)1234567
7(925)123-45-67
+7(925)1234567
+7(925)123-45-67

Я исходил из пративного. Я пользователям дал право писать ()+- , а потом в пыхе просто вырезал и сделал перепроверку

Последний раз редактировалось Ultimatum, 19.06.2010 в 15:31.
Ответить с цитированием
  #3 (permalink)  
Старый 19.06.2010, 15:30
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

/[\+\d]\(\d+\)[-\d]/
Ответить с цитированием
  #4 (permalink)  
Старый 19.06.2010, 15:44
Аватар для theo_
Аспирант
Отправить личное сообщение для theo_ Посмотреть профиль Найти все сообщения от theo_
 
Регистрация: 14.08.2009
Сообщений: 51

\(\d+\) - вот для этой части нужно указать, что она может быть 1 или 0 раз

\(\d+\)? - такое выражение у меня не работат.. в чем может быть причина?
Ответить с цитированием
  #5 (permalink)  
Старый 19.06.2010, 15:51
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

theo_, в том, что квантификатор относится к закрыващей скобке, а не всему выражению.
(?:\(\d+\))?
Ответить с цитированием
  #6 (permalink)  
Старый 19.06.2010, 16:05
Аватар для theo_
Аспирант
Отправить личное сообщение для theo_ Посмотреть профиль Найти все сообщения от theo_
 
Регистрация: 14.08.2009
Сообщений: 51

а с учетом того, что это выражение у меня идет в кавычках - как правильно записать?
символ \ - там становится \\

var phoneTest = "(?:\\(\\d+\\))?";

так правильно?
Ответить с цитированием
  #7 (permalink)  
Старый 19.06.2010, 16:10
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

theo_, правильно.
Ответить с цитированием
  #8 (permalink)  
Старый 19.06.2010, 16:33
Аватар для theo_
Аспирант
Отправить личное сообщение для theo_ Посмотреть профиль Найти все сообщения от theo_
 
Регистрация: 14.08.2009
Сообщений: 51

спасибо всем за помощь

я суть-то понял, но все равно что-то у меня не получается
не работает у меня почему-то ни \\d, ни \d
если заменить на [0-9]+, то все ок
однако выражение со скобками все равно не определяет как правильное
без них пожалуйста, а так нет

соответственно и пробелы не могу победить... \s и \\s не работают

сейчас выражение у меня такое:

var phoneTest = "^[+]?[0-9\\-]+(?:\\([0-9]+\\))?[0-9\\-]+[0-9]{1}$";
var regpx = new RegExp(phoneTest);
Ответить с цитированием
  #9 (permalink)  
Старый 19.06.2010, 19:19
Аватар для theo_
Аспирант
Отправить личное сообщение для theo_ Посмотреть профиль Найти все сообщения от theo_
 
Регистрация: 14.08.2009
Сообщений: 51

всем еще раз спасибо!
разобрался, все заработало, как надо

Проблемы были связаны с объектом RegExp, отказался от его использования и все стало отлично )
Ответить с цитированием
  #10 (permalink)  
Старый 20.06.2010, 23:39
Аватар для sysya
Профессор
Отправить личное сообщение для sysya Посмотреть профиль Найти все сообщения от sysya
 
Регистрация: 27.12.2009
Сообщений: 292

У меня вопрос по url, мне надо удалить из адреса всё после знака вопроса, как это сделать?
Всегда с регулярками была проблема, сделал так:
"?id=27".replace(/\?(.)$/, '');//Не работает
__________________
Нет предела совершенству...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка e-mail регулярное выражение mycoding Общие вопросы Javascript 4 09.02.2017 10:12
Регулярное выражение для проверки URL Beck Events/DOM/Window 13 06.02.2011 08:01
Регулярное выражение jetli13 Общие вопросы Javascript 9 11.01.2010 21:40
Регулярное выражение для поиска смайлов. NightmareZ Общие вопросы Javascript 13 23.06.2009 13:12
регулярное выражение demi Общие вопросы Javascript 3 10.03.2009 13:10