Каков шаблон регулярного выражения, позволяющий использовать числа и некоторые специальные символы?

Мне нужно регулярное выражение, чтобы разрешить числа и некоторые специальные символы, такие как + . - ( ).
Номер телефона форматирует мой лайк.

9999 999 999
9999999999
999999
+91 99 99 99 9999
999.999.999
99 (999) 99 99 etc..

Как и любой формат. Есть ли кто-нибудь, помогите мне.

Я пробовал много ответов в переполнении стека, но я не могу найти лучшего.


person chandu    schedule 11.07.2014    source источник
comment
вы хотели сопоставить только числа без специальных символов?   -  person Avinash Raj    schedule 11.07.2014
comment
I have tried Lot number of answers in stack overflow - покажите их, может быть, мы сможем найти что-то простое, что можно исправить   -  person Ian    schedule 11.07.2014
comment
@лан. аналогичный вопрос: stackoverflow.com/questions/3256547/regex-simple-phone -число.. сколько их там   -  person chandu    schedule 11.07.2014
comment
@chandu Я имел в виду показать свои попытки. Конечно, регулярные выражения из другого ответа не будут идеально соответствовать вашим потребностям.   -  person Ian    schedule 11.07.2014
comment
возможный дубликат обширного регулярного выражения для проверки номера телефона   -  person HamZa    schedule 12.07.2014


Ответы (1)


Приведенное ниже регулярное выражение будет соответствовать строкам, содержащим числа и специальные символы (.+)(-),

^[-()+ .]?(?:[0-9]+[-()+ .]+)+[0-9]+$

ДЕМО

person Avinash Raj    schedule 11.07.2014
comment
также вы можете экранировать специальные символы (например - .) с помощью обратной косой черты \. - person vodolaz095; 11.07.2014
comment
- не нужно экранировать, если мы поместим его первым или последним в классе char. - person Avinash Raj; 11.07.2014
comment
@ Авинаш Радж. ваше решение отличное. но здесь он поддерживает последовательные специальные символы. Можем ли мы избежать этих вещей - person chandu; 11.07.2014
comment
@chandu для этого 99 (999) нам нужны последовательные специальные символы. - person Avinash Raj; 11.07.2014
comment
@АвинашРадж. хороший ответ, но не поддерживает две точки. и два + и (). как +555(555).4114656.()5454 - person chandu; 11.07.2014
comment
@chandu приведи примерный список всех возможностей. - person Avinash Raj; 11.07.2014
comment
@Avinash Raj разрешает только один знак + в начальной позиции. формат должен начинаться с цифры или + и не допускать двух последовательных точек .. и () и -- - person chandu; 12.07.2014