2014-09-09 2 views
0

Мне нужно проверить строку, которая должна представлять номер дома. к сожалению, в моей стране (возможно, и другие) эти номера домов могут состоять из цифр и букв. из-за этого я не могу просто использовать Integer, что сделало бы это намного легче проверить. Я искал объяснения, и я действительно нахожу их много, но у меня возникают серьезные трудности с этим вопросом. так как мне просто нужен шаблон (простой?) только один раз, я надеюсь, что кто-то может помочь мне здесь.создание простого регулярного выражения для @Pattern

так что мне нужно, это шаблон регулярного выражения, который проверяет, имеет ли вставленная строка любое число (но, вероятно, максимум 4) положительных чисел, за которым следует максимальная ОДНА буква. Каким будет правильное выражение для этого?

ответ

4

Все, что вам нужно это:

^\d{1,4}[a-zA-Z]?$

Объяснение:

^\d{1,4} это якорь ^ для начала строки, а затем 1-4 цифр

[a-zA-Z]?$ это любая буква, 0 или 1 раз, в конце строки ($)

+0

Ни в JavaScript двигателя самый надежный якорь с проверкой является \ A и \ z –

+0

Спасибо вам за помощь и объяснение !! Я просто хочу добавить, что мне пришлось избегать символа «\», дважды набрав его «\\». на всякий случай, если кто-то найдет это и не сможет заставить его работать. – YoNuevo

+0

То, что я вам дал, было самим регулярным выражением. В зависимости от контекста вам может понадобиться избежать символа \, но не всегда. Литерал регулярного выражения будет '/^\ d {1,4} [a-zA-Z]? $ /', Но объект RegExp, определенный со строкой, требует дополнительной косой черты из-за значения косой черты в строках: 'new RegExp ("^ \\ d {1,4} [A-Za-Z]? $") ' –

1

В JavaScript RegExp notation:

/^\d{1,4}\[A-Za-z]?$/ 

Вы можете использовать его как это:

if("2234B".match(/^\d{1,4}[A-Za-z]?$/) !== null) { 
    // String matched, do something 
} 

Объяснение:

  • ^означает "Начало ввода", чтобы убедиться, что вы не что-то перед цифрами
  • \ d {1,4} означает «от 1 до 4 цифр»
  • [A-Za-z]? означает «ноль или один любой символ»
  • $ означает «конец ввода», чтобы убедиться, что вы не разрешаете что-то после символа
Смежные вопросы