Я хочу отфильтровать год, используя регулярное выражение в php или javascript.
которые содержат только число, а его длина равна 0 (если не вводится) или 4, если (вставить), она не принимает длину 1, 2 или 3 для ex 123.
Я знаю регулярное выражение для 0 до 4 цифр, которое составляет ^[0-9]{0,4}$
или ^\d{0,4}$
поэтому не отвечайте, как это же регулярное выражение.
Благодарю.
Попробуйте следующее:
^([0-9]{4})?$
^
– начало строки
([0-9]{4})?
– четыре номера, необязательно (из-за ?
)
$
– конец строки
Я знаю, что на этот вопрос уже был дан ответ, но для того, чтобы быть более ясным и в качестве альтернативного решения я бы придумал следующее:
В вашем шаблоне:
^[0-9]{0,4}$
{0,4}
позволит сопоставить номера длин 0, 1, 2, 3 и 4. Чтобы устранить длину 1, 2 и 3, вы также можете использовать что-то вроде:
^\d{4}?$
Вот:
^ = beginning of line \d = any digit - equivalent of [0-9] {4} = exactly four times ? = makes the preceding item optional $ = end of line
Надеюсь, поможет!
Вам не нужно использовать регулярные выражения для чего-то такого простого, как сопоставление в год:
if (ctype_digit($year) && strlen($year) === 4) { echo 'This is a year'; } else { echo 'Not a year'; }