Ответ 1
/^\d{7}(?:\d{2})?$/
\d
- это современное сокращение регулярных выражений для [0-9]
, используя (?:
предотвращает групповой захват, который вам не нужен или не требуется.
Мои навыки reg почти равны нулю, и я пытаюсь совместить поле, чтобы иметь ровно 7 или 9 чисел (не между 7 или 9, поэтому 8 чисел недействительны).
Я пробовал (не смейтесь)
/^([0-9]{7} | [0-9]{9})
и
/^([0-9]{7 | 9})
если кто-то может помочь и объяснить ответ, который будет высоко оценен.
Я предполагаю (возможно, неправильно), что не имеет значения, какой язык программирования я использую
Спасибо
/^\d{7}(?:\d{2})?$/
\d
- это современное сокращение регулярных выражений для [0-9]
, используя (?:
предотвращает групповой захват, который вам не нужен или не требуется.
Семь или девять цифр - это семь цифр, а затем еще две цифры:
[0-9]{7}([0-9]{2})?
используйте это регулярное выражение ^\d{7}(\d{2})?$
Ваш первый подход работает. Просто оставьте пробелы, добавьте $
, чтобы соответствовать концу строки и разделителю конечного слэша. Вы также можете заменить [0-9]
ярлыком \d
:
/^(\d{7}|\d{9})$/
Это, вероятно, легче сделать в используемом программном lanuage, но это может быть достигнуто и в regex. Взгляните на эту ссылку: Регулярное выражение, чтобы ограничить число символов до 10
Ваш первый будет работать, если вы просто удалите пробелы (и optionnaly в скобках).