Member 13992723 Ответов: 3

Как проверить с помощью regexp два поля в модели в приложении MVC VB


Всем привет. Я работаю над приложением vb mvc. В моей модели у меня есть эти два поля:

Public Property IncludedColumns As Integer


Public Property Ladder As String


Я хочу, чтобы проверить "IncludedColumns" с помощью регулярных выражений, чтобы получить только целые значения.
"Лестница" - это строковое поле, которое должно принимать такие значения: "23,47,71,95". Я хочу проверить "лестницу" с помощью регулярного выражения, так что если после каждых двух цифр запятая отсутствует, чтобы иметь сообщение об ошибке, и если есть какие-либо пробелы, чтобы иметь сообщение об ошибке, и если есть какие-либо другие символы, отличные от цифр и запятых, чтобы иметь сообщение об ошибке.
Пожалуйста, помогите мне с этими двумя регулярными выражениями.

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

Я искал цифру regExp, но безуспешно.

3 Ответов

Рейтинг:
2

Richard MacCutchan

Регулярные выражения работают только с текстом, Вы не можете использовать их для проверки целочисленных значений. Примеры регулярных выражений см. RegExr: Learn, Build, & Test RegEx[^]


Рейтинг:
1

Maciej Los

Цитата:
Я хочу, чтобы проверить "IncludedColumns" с помощью регулярных выражений, чтобы получить только целые значения.


Я бы сказал: Попробуйте добавить значение, отличное от целого числа, чтобы узнать, что происходит...

Цитата:
"Лестница" - это строковое поле, которое должно принимать такие значения: "23,47,71,95". Я хочу проверить "лестницу" с помощью регулярного выражения, чтобы, если после каждых двух цифр запятая отсутствует, получить сообщение об ошибке


Попробуйте это и измените в соответствии с вашими потребностями:

Dim ladders As String()= {"23,47,71,95", "23,47.71,95", "23,47,71 95"}

Dim pattern As String = "^\d{2},\d{2},\d{2},\d{2}$"
For Each lad As String In ladders
	Console.WriteLine("{0} => {1}", lad, Regex.IsMatch(lad, pattern))
Next

string[] ladders = {"23,47,71,95", "23,47.71,95", "23,47,71 95"};

string pattern = @"^\d{2},\d{2},\d{2},\d{2}$";
foreach(string lad in ladders)
{
	Console.WriteLine("{0} => {1}", lad, Regex.IsMatch(lad, pattern));
}


Результат:
23,47,71,95 => True
23,47.71,95 => False
23,47,71 95 => False


Рейтинг:
1

Patrice T

Цитата:
Пожалуйста, помогите мне с этими двумя регулярными выражениями.

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

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