RegEx Числовой чек

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

Мне нужно создать регулярное выражение, которое определяет, является ли поле в базе данных числовым, и если оно числовое, попадает ли оно в допустимый диапазон (т. е. 1-50). Я пробовал [1-50], который работает за исключением случаев, когда однозначному числу предшествует 0 (т.е. 06). 06 все еще следует считать действительным числом, поскольку позже я могу преобразовать его в число.

Я очень ценю вашу помощь! Я пытаюсь узнать больше о регулярных выражениях и изучаю все, что могу, на: www.regular-выражения. Информация . Если вы, ребята, порекомендуете другие сайты, чтобы поболтать с этим, я был бы признателен!

12 голосов | спросил Blake Blackwell 25 MarpmWed, 25 Mar 2009 15:27:31 +03002009-03-25T15:27:31+03:0003 2009, 15:27:31

4 ответа


0

Попробуйте это

^(0?[1-9])|([1-4][0-9])|(50)$

Идея этого регулярного выражения состоит в том, чтобы разбить проблему на случаи

  • 0? [1-9] обрабатывает однозначный регистр, допускающий необязательный предшествующий 0
  • [1-4] [0-9] заботится обо всех числах от 10 до 49. Это также позволяет указывать предшествующие 0 на одной цифре
  • 50 заботятся о 50
ответил JaredPar 25 MarpmWed, 25 Mar 2009 15:31:05 +03002009-03-25T15:31:05+03:0003 2009, 15:31:05
0

Регулярные выражения работают с символами (в данном случае с цифрами), а не с числами. Вам нужно иметь отдельный шаблон для каждого числа цифр в вашем шаблоне и комбинировать их с | (оператор ИЛИ), как предложили другие ответы. Однако попробуйте просто проверить, является ли текст числовым с помощью регулярного выражения (например, [0-9]+), а затем преобразовать в целое число и проверить, является ли целое число в пределах досягаемости.

ответил Doug 25 MarpmWed, 25 Mar 2009 15:33:45 +03002009-03-25T15:33:45+03:0003 2009, 15:33:45
0

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

Вам лучше разбить это на две части.

  1. Распознать шаблон номера (^\d+$).

  2. Проверьте диапазон этого числа в прикладной программе.

ответил S.Lott 25 MarpmWed, 25 Mar 2009 15:35:39 +03002009-03-25T15:35:39+03:0003 2009, 15:35:39
0

^ 0? [1-50] {1,2} $

ответил Brijesh Mishra 25 MarpmWed, 25 Mar 2009 15:50:59 +03002009-03-25T15:50:59+03:0003 2009, 15:50:59

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132