Member 11776570 Ответов: 5

Как проверить только 10-значный номер мобильного телефона регулярное выражение


Regex(@"^[0-9]{10}$");


Что я уже пробовал:

не работает, я также хочу проверить, если он меньше 10 цифр, а затем выдать ошибку

Patrice T

"не работая, он дает ошибку"
Какая ошибка ?
Покажите код, который мы можем запустить.

5 Ответов

Рейтинг:
2

Christiaan van Bergen

try {
	if (Regex.IsMatch(SubjectString, "\\A[0-9]{10}\\z")) {
		// This is a FULL MATCH
	} else {
		// Nope, no match, do your worst
	} 
} catch (ArgumentException ex) {
	// Syntax error in the regular expression
}


Member 11776570

не работает это дает ошибку, у меня есть тип мобильного номера в текстовом поле.

Christiaan van Bergen

Покажите мне номер, который вы хотите проверить.

Member 11776570

9876543214. этот номер я хочу, чтобы проверить, но он должен также проверить, что она должна быть равна 10 цифр mendatory.

Christiaan van Bergen

Да, этот номер совпадает. Это 10 цифр. Сделайте его девятизначным, и он потерпит неудачу.... конечно. Может быть, у вас есть какие-то пробелы вокруг вашего ввода? Попробуйте использовать оператор .Trim() для ввода данных.

Member 11776570

не работает это проверка 9 цифр только не 10 цифр. я хочу проверить 10-значный номер мобильного телефона, как это 9876543201

Рейтинг:
2

OriginalGriff

Ваше регулярное выражение отлично работает для проверки ваших выборочных данных:

Regex reg = new Regex(@"^[0-9]{10}$");
string inputOK = "9876543214";
string inputBad1 = "876543214";
string inputBad2 = "09876543214";
if (reg.IsMatch(inputOK)) Console.WriteLine("OK");
if (!reg.IsMatch(inputBad1)) Console.WriteLine("OK");
if (!reg.IsMatch(inputBad2)) Console.WriteLine("OK");
Это дает
OK
OK
OK
Так... данные, которые вы проверяете, - это не то, что вы думаете.
Используйте отладчик, чтобы точно проверить, что находится в вашей входной строке при ее проверке.


Рейтинг:
16

Member 11776570

Regex(@"^[0-9]{10}$");

используйте это, он будет работать должным образом. он также проверит, есть ли там какие-либо алфавиты или нет. при этом мы можем ввести только 10 значный номер


Рейтинг:
0

Maciej Los

Если вы хотите проверить, действителен ли номер мобильного телефона (10 цифр), попробуйте сделать это:

string[] mobilephones = {"9876543214", "987654321", "98765432142", "A876543214", "87C54d2142"};

//pattern
string pattern = @"^\d{10}$";

var result = mobilephones
	.Select(x=>new
	{
		mobile = x,
		IsValid = Regex.IsMatch(x, pattern),
	})
	.ToList();
	
foreach(var mb in result)
{
	Console.WriteLine("{0} - {1} valid mobile number", mb.mobile, mb.IsValid ? "is" : "is NOT");
}


Результат:
9876543214 - is valid mobile number
987654321 - is NOT valid mobile number
98765432142 - is NOT valid mobile number
A876543214 - is NOT valid mobile number
87C54d2142 - is NOT valid mobile number


Для получения более подробной информации, пожалуйста, смотрите: Регулярное выражение.Метод IsMatch[^]


Рейтинг:
0

Member 13129647

UserMobile вал = findViewById, чтобы найти&ЛТ;полей EditText&ГТ;(Р. ИД.UserMobile)
msgUserMobile вал: строка = UserMobile.текст.метод toString()

удовольствие строку.isMobileValid(): boolean значение {
// 11-значный номер начинается с 011, 010, 015 или 012
// тогда [0-9]{8} любые числа от 0 до 9 длиной 8 чисел
если(Pattern.matches("(011/012/010/015)[0-9]{8}", msgUserMobile)) {
вернуть true

}
возвращать false
}
if(msgUserMobile.trim().length==11&& msgUserMobile.isMobileValid())
{//pass} else {//недопустимо}