Member 12183079 Ответов: 4

Что такое код регулярного выражения для 10 значного мобильного номера


public static bool hasValidCharforContactNo(string input)
        {
            Regex r = new Regex("^[0-9]{10}$");
            if (r.IsMatch(input))
            {
                return false;
            }

            return true;
        }


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

я пытаюсь использовать приведенный выше код но он не работает должным образом Пожалуйста дайте мне правильный код

Richard Deeming

"он не работает должным образом"
Затем объясните, что вы ожидаете от него и что он на самом деле делает.

- пожалуйста, дайте мне правильный код."
Мы не можем этого сделать, пока вы не объясните, что вы ожидаете от метода.

4 Ответов

Рейтинг:
2

Member 12893295

public static bool hasValidCharforContactNo(string input)
        {
            Regex r = new Regex(@"^\d{10}$");
            if (r.IsMatch(input))
            {
                return true;
            }else
{
            return false;
}
        }
I hope this will help you...


Patrice T

Я боюсь, что это не поможет, код неправильный.

RickZeeland

Вы можете обновить свое решение, это намного проще читать :)

RickZeeland

Нет, нет, я имею в виду использовать кнопку "улучшить решение"!

Рейтинг:
1

RickZeeland

Вот сайт для тестирования регулярных выражений javascript с примером для 10 цифр:
RegExr: Learn, Build, & Test RegEx[^]

^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)[1-9]((\s|\s?\-\s?)?[0-9])((\s|\s?-\s?)?[0-9])((\s|\s?-\s?)?[0-9])\s?[0-9]\s?[0-9]\s?[0-9]\s?[0-9]\s?[0-9]$

И еще один для 11-12 значных чисел: RegExr: Learn, Build, & Test RegEx[^]

Вот интересная статья знаменитого Экспрессо создатель Джим Холленхорст: 30-Минутный Учебник По Регулярным Выражениям[^]

А вот рабочий код для голландских телефонных номеров:
// using System.Text.RegularExpressions;

            string searchPattern = @"^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)[1-9]((\s|\s?\-\s?)?[0-9])((\s|\s?-\s?)?[0-9])((\s|\s?-\s?)?[0-9])\s?[0-9]\s?[0-9]\s?[0-9]\s?[0-9]\s?[0-9]$";
            var match = new Regex(searchPattern).Match(input);
            return (match.Success);

Для других чисел попробуйте следующее:
input = input.Replace("(", string.Empty).Replace(")", string.Empty).Replace("-", string.Empty).Replace(" ", string.Empty).Trim();
return Regex.IsMatch(input, "^[0-9]{10}$");


Member 12183079

нет только 10 значный пожалуйста напишите для 10 значного

RickZeeland

Обновлено решение !

Member 12183079

нет не работает

RickZeeland

Вы пробовали код в нижней части моего решения ? можете ли вы показать мне входную строку, которую вы использовали ?
Обратите внимание, что этот пример относится к голландским телефонным номерам, которые должны начинаться с 0 или + для международных обозначений.

Рейтинг:
1

Patrice T

Чтобы помочь нам разобраться в проблеме, разумно включить примеры данных, которые соответствуют критериям, а которые нет.

Всего лишь несколько интересных ссылок, которые помогут построить и отладить регулярное выражение.
Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[^]
Вот ссылки на инструменты, помогающие создавать регулярные выражения и отлаживать их:
.Объем тестер регулярное выражение - регулярное выражение шторм[^]
Регулярное Средство Выражения Эспрессо [^]
RegExr: Learn, Build, & Test RegEx[^]
Онлайн-тестер регулярных выражений и отладчик: PHP, PCRE, Python, Golang и JavaScript[^]
Этот пример показывает вам регулярное выражение в виде красивого графика, который действительно полезен для понимания того, что делает регулярное выражение:
Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[^]
Этот сайт также показывает регулярное выражение в красивом графике, но не может проверить, что соответствует регулярному выражению:
Regexper[^]


Рейтинг:
0

Salman622

попробуйте следующий код:

Regex: /^(\+\d{1,3}[- ]?)?\d{10}$/
1. ^ start of line
2. A + followed by \d+ followed by a  or - which are optional.
3. Whole point two is optional.
4. Negative lookahead to make sure 0s do not follow.
5. Match \d+ 10 times.
4. Line end.


он не будет работать для +910000000000