4-значный год между годом x и годом y - javascript regex

Мне нужно регулярное выражение в javascript, которое будет проверять, что вход 4 цифры длинный и между 2 годами.

например: между 1930 - 2012 гг.  Является ли это возможным?

0
nl ja de
Да, что ты пробовал?
добавлено автор Blender, источник
Хотя это возможно с помощью регулярного выражения, его гораздо проще в использовании: function isValidYear (yearStr) {var year = parseInt (yearStr, 10); год возвращения> = 1930 && year <= 2012; }
добавлено автор user166390, источник
Я собираюсь проверить также с JS Date. но для начальной проверки мне тоже нужно это в regex
добавлено автор baba-dev, источник

3 ответы

Ref from http://utilitymill.com/utility/Regex_For_Range

First, break into equal length ranges:
  1930 - 2012

Second, break into ranges that yield simple regexes:
  1930 - 1999
  2000 - 2009
  2010 - 2012

Turn each range into a regex:
  19[3-9][0-9]
  200[0-9]
  201[0-2]

Collapse adjacent powers of 10:
  19[3-9][0-9]
  200[0-9]
  201[0-2]

Combining the regexes above yields:
  (19[3-9][0-9]|200[0-9]|201[0-2])

Next we'll try factoring out common prefixes using a tree:
Parse into tree based on regex prefixes:
  . 1 9 [3-9] [0-9]
    2 0 0 +----
      + 1 [0-2]

Turning the parse tree into a regex yields:
  (19[3-9][0-9]|20(0[0-9]|1[0-2]))

We choose the shorter one as our result.

\b(19[3-9][0-9]|200[0-9]|201[0-2])\b
1
добавлено
Приведенная ссылка требует аутентификации.
добавлено автор Leonardo Seccia, источник
@MikeM Это не примет ничего, кроме 4-значной даты.
добавлено автор om39a, источник
Проверьте его здесь regex101.com/r/zO0mG5
добавлено автор om39a, источник
Как и предложение npinti, это не позволяет «проверить, что вход имеет длину 4 цифры» .
добавлено автор MikeM, источник
/\ b (19 [3-9] [0-9] | 200 [0-9] | 201 [0-2]) \ b/.test ('2012 2020')//true
добавлено автор MikeM, источник
/\ b (19 [3-9] [0-9] | 200 [0-9] | 201 [0-2]) \ b/.test ('2012 bananas')//true
добавлено автор MikeM, источник

Вы можете попробовать что-то вроде этого: \ b (19 [3-9] [0-9] | 200 [0-9] | 201 [0-2]) \ b (взято из здесь ). При этом вам следует использовать числовые операторы при работе с числами. Выполнение этого с помощью регулярных выражений может очень сильно испортиться.

0
добавлено
/^(19[3-9]\d|20(0\d|1[0-2]))$/
0
добавлено
JavaScript Jobs — чат
JavaScript Jobs — чат
8 336 участник(ов)

JavaScript Jobs — чат для поиска работы и людей Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru

JavaScript.ru
JavaScript.ru
7 932 участник(ов)

Сообщество сайта JavaScript.ru в Slack.

pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

JavaScript — русскоговорящее сообщество
JavaScript — русскоговорящее сообщество
3 269 участник(ов)

Рекомендуем сразу отключить уведомления Правила: https://rudevs.network/ByaMH6un7 См. также: @js_noobs_ru, @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

JavaScript Noobs — сообщество новичков
JavaScript Noobs — сообщество новичков
2 484 участник(ов)

Чат для новичков

javascript_ru
javascript_ru
915 участник(ов)

Сообщество любителей самого популярного языка программирования в мире. Чат основан в 2009 году. Логи: https://goo.gl/9EOeM7 Поддержка бота: @chat_linker (ссылка на репу внутри) Вам будут интересны @frontend_ru и @css_ru

jsChat
jsChat
603 участник(ов)

Чат посвященный программированию на языке javaScript Перед отправкой ссылки на Ваш контент посоветуйтесь с админом Все ссылки удаляются ботом автоматически

JavaScript for Zombies Chat
JavaScript for Zombies Chat
492 участник(ов)

Чат про JavaScript для настоящих zombie! Вход строго по приглашениям! Ссылка для строгих приглашений: https://t.me/joinchat/AAMBHz3Uyr0tuZ7VaB029g

All That JS
All That JS
417 участник(ов)

JS на русском