Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   регулярное выражение (https://javascript.ru/forum/misc/10103-regulyarnoe-vyrazhenie.html)

theo_ 19.06.2010 15:11

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

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

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

Регулярное выражение должно быть в формате RegExp

Ultimatum 19.06.2010 15:27

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

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

exec 19.06.2010 15:30

/[\+\d]\(\d+\)[-\d]/

theo_ 19.06.2010 15:44

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

\(\d+\)? - такое выражение у меня не работат.. в чем может быть причина?

B@rmaley.e><e 19.06.2010 15:51

theo_, в том, что квантификатор относится к закрыващей скобке, а не всему выражению.
(?:\(\d+\))?

theo_ 19.06.2010 16:05

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

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

так правильно?

exec 19.06.2010 16:10

theo_, правильно.

theo_ 19.06.2010 16:33

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

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

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

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

var phoneTest = "^[+]?[0-9\\-]+(?:\\([0-9]+\\))?[0-9\\-]+[0-9]{1}$";
var regpx = new RegExp(phoneTest);

theo_ 19.06.2010 19:19

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

Проблемы были связаны с объектом RegExp, отказался от его использования и все стало отлично )

sysya 20.06.2010 23:39

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


Часовой пояс GMT +3, время: 03:12.