Регулярные выражения соответствуют точно 7 или 9 цифрам

Мои навыки reg почти равны нулю, и я пытаюсь совместить поле, чтобы иметь ровно 7 или 9 чисел (не между 7 или 9, поэтому 8 чисел недействительны).

Я пробовал (не смейтесь)

/^([0-9]{7} | [0-9]{9})

и

/^([0-9]{7 | 9})

если кто-то может помочь и объяснить ответ, который будет высоко оценен.

Я предполагаю (возможно, неправильно), что не имеет значения, какой язык программирования я использую

Спасибо

Ответ 1

/^\d{7}(?:\d{2})?$/

\d - это современное сокращение регулярных выражений для [0-9], используя (?: предотвращает групповой захват, который вам не нужен или не требуется.

Ответ 2

Семь или девять цифр - это семь цифр, а затем еще две цифры:

[0-9]{7}([0-9]{2})?

Ответ 3

используйте это регулярное выражение ^\d{7}(\d{2})?$

Ответ 4

Ваш первый подход работает. Просто оставьте пробелы, добавьте $, чтобы соответствовать концу строки и разделителю конечного слэша. Вы также можете заменить [0-9] ярлыком \d:

/^(\d{7}|\d{9})$/

Ответ 6

Ваш первый будет работать, если вы просто удалите пробелы (и optionnaly в скобках).