Регулярное выражение для индийского номера телефона
Ищу регулярное выражение индийского номера телефона
регулярное выражение должно разрешать все следующие форматы.
для стационарного телефона нет
0802404408
080-2404408
+91802404408
+91-802404408
для мобильного нет
8147708287
08147708287
+918147708287
+91-8147708287
кто-нибудь может мне помочь, заранее спасибо
мой код
[RegexValidator("[0-9 -]*"
, MessageTemplateResourceName = "INVALID_PHONE"
, MessageTemplateResourceType = typeof(ValidatioinErrors))]
public string Phone
{
get { return phone; }
set { phone = value; }
}
public bool IsValid()
{
return Validation.Validate<Class_name>(this).IsValid;
}
public ValidationResults ValResults
{
get
{
return Validation.Validate<Class_name>(this);
}
}
для этой проверки вещь, которую я только что сослался
using Microsoft.Practices.EnterpriseLibrary.Validation;
using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;
в моем пространстве имен в части пользовательского интерфейса выражение работает нормально, но в приведенном выше коде показано "Неверный номер телефона", если я задаю значение 080-2404408
4 ответа
Ты можешь попробовать
^\+?[0-9-]+$
Смотрите это здесь на Regexr
Важными частями являются якоря ^
а также $
для начала и конца строки. Я также добавил \+?
в начале, чтобы соответствовать дополнительному +
, +
необходимо экранировать, так как это специальный символ в регулярном выражении, ?
после того, как это делает его необязательным.
Конечно, это очень простой шаблон, имейте в виду, что, например, "-----" также будет допустимым.
Для приведенных примеров работают следующие RegEx:
/^(?:\+91(?:-)?|0\d{2,4}-|0|)\d{7,10}$/
Вы можете использовать другой сайт для вашей справки, например http://www.jslab.dk/tools.regex.php чтобы создать регулярное выражение для ваших требований или загрузить пробную версию этого программного обеспечения RegexMagic.
Генератор регулярных выражений
import remystr = """ 814770828708147708287+918147708287+91-8147708287 """
print(re.findall(r'\b91-*\d{10}',mystr))