Member 12245369 Ответов: 3

Как я могу проверить, что строка может содержать до 30 символов букв, цифр и / или пробелов в C# .NET


Может ли кто-нибудь помочь мне в создании регулярного выражения для строки длиной до 30 символов из букв, цифр и / или пробелов

Заранее спасибо

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

я попробовал с этим обычным выражением лица
@"^[0-9a-zA-Z\s] {0,30}$/"

#realJSOP

Регулярное выражение? Неужели? Это все равно что убить блоху кувалдой.

3 Ответов

Рейтинг:
26

OriginalGriff

И если я попробую регулярное выражение, оно работает - за исключением того, что у него есть символ "/" после индикатора "конец строки". Удалите это, и это должно сработать:

@"^[0-9a-zA-Z\s]{0,30}$"


Member 12245369

Спасибо

OriginalGriff

Пожалуйста!

Рейтинг:
2

Patrice T

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


Рейтинг:
18

#realJSOP

Почему бы просто не написать метод расширения строки, который использует обычные классы/методы .Net? это было бы гораздо эффективнее, чем использование регулярных выражений.

public static bool ValidString(this string text)
{
    bool result = true;
    if (text.Length <= 30)
    {
        string lowCaseText = text.ToLower();
        string validChars = "abcdefghijklmnopqrstuvwxyz 1234567890";
        for (int i = 0; i < text.Length; i++)
        {
            if (!validChars.Contains(text[i]))
            {
                result = false;
                break;
            }
        }
    }
    else
    {
        result = false;
    }
    return result;
}


Member 12245369

Большое спасибо