JavaScript: используйте RegEx, чтобы разрешить буквы, цифры и пробелы (хотя бы с одной буквой и цифрой) - PullRequest
0 голосов
/ 19 марта 2012

Я хочу построить регулярное выражение, которое позволяет в следующих случаях:

  • М1 1АА
  • B33 8-й
  • CR2 6XH
  • DN55 1PT
  • W1A 1HQ
  • EC1A 1BB

и не должны разрешать , только одну букву или одно число. Например:

  • A
  • 2
  • AA AAA
  • 22 343

Кроме того, как я могу назвать это в JavaScript. Я в настоящее время использую RegEx

^[A-Z0-9 ]*[A-Z0-9][A-Z0-9 ]*$

Что подтверждает все вышеперечисленные случаи, включая одну букву или одно число.

Пожалуйста, помогите мне, как использовать javascript для вызова текстового поля.

1 Ответ

2 голосов
/ 19 марта 2012

Ты рядом.Одним из способов решения этой проблемы может быть

^[A-Z0-9 ]*[A-Z][A-Z0-9 ]*\d[A-Z0-9 ]*$|^[A-Z0-9 ]*\d[A-Z0-9 ]*[A-Z][A-Z0-9 ]*$

, который допускает произвольную букву, цифру или пробел ([A-Z0-9 ]*) до, после и между буквой и цифрой и позволяет любой букве идти первойили число, которое будет первым.

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

^[A-Z0-9 ]*$

, которое проверяет наличие только букв, цифр и пробелов.Затем проверьте регулярное выражение

[A-Z][A-Z0-9 ]*\d|\d[A-Z0-9 ]*[A-Z]

, которое проверяет, по крайней мере, одну букву ([A-Z]) и одно число (\d), при этом разрешены оба порядка.Обратите внимание, что этот шаблон не включает в себя шляпу и знак доллара, поэтому буква и цифра могут встречаться в любом месте строки.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...