калькулятор віку

Наш калькулятор віку дозволяє миттєво дізнатися, скільки років людині по даті народження. Розрахунок віку здійснюється автоматично у реальному часі. Ви зможете швидко порахувати скільки років, місяців і днів пройшло від дати народження. Ідеальний інструмент для тих, хто хоче дізнатися свій точний вік за датою народження.

star 4.9
auto_awesome AI
New

калькулятор віку calculator

/ /
global | case-insensitive | multiline | dotAll | unicode
info Enter a pattern to start matching
0 matches
find_replace Replace Mode

                        

No matches yet

lightbulb Tips

  • •\d = digit, \w = word, \s = space
  • •Use 'g' flag to find all matches
  • •Escape special chars: \. \( \[ \+
  • •Use (?:...) for non-capturing groups

How to Use the калькулятор віку

edit

Введіть дату

Введіть дату народження у поле вище для розрахунку.

text_fields

Додати подію

Вставте або введіть текст, який потрібно перевірити. Збіги підсвічуються миттєво.

tune

Перемикачі прапорців

Увімкніть прапорці, такі як глобальний (g), ігнорування регістру (i) або багаторядковий (m), щоб змінити поведінку пошуку.

visibility

Переглянути результати

Переглядайте всі збіги, групи захоплення та позиції збігів. Використовуйте режим заміни для тестування пошуку та заміни.

The Formula

Регулярні вирази — це шаблони, які використовуються для пошуку комбінацій символів у рядках. Рушій регулярних виразів сканує тестовий рядок зліва направо, намагаючись знайти збіг із шаблоном у кожній позиції. Прапорці змінюють поведінку пошуку: 'g' знаходить усі збіги, 'i' ігнорує регістр, 'm' змушує ^ і $ збігатися з межами рядків.

new RegExp(pattern, flags).exec(testString)

lightbulb Variables Explained

  • pattern Шаблон регулярного виразу для пошуку збігів
  • flags Прапорці регулярних виразів: g (глобальний), i (ігнорування регістру), m (багаторядковий), s (dotAll), u (unicode)
  • testString Вхідний текст для перевірки шаблону
  • exec() Повертає деталі збігу, зокрема захоплені групи та індекси

tips_and_updates Pro Tips

1

Використовуйте калькулятор років для точного обчислення

2

Розрахунок віку за допомогою дати: \. \( \) \[ \] \{ \} \+ \* \?

3

Використовуйте (?:...) для допоміжних розрахунків

4

\d = цифра, \w = символ, \s = пробіл, \b = межа

5

Використовуйте калькулятор годин для точного підрахунку годин

6

Калькулятор дробів допоможе порахувати точні значення

7

Перевірте зворотний відлік до важливих подій

Наш безплатний тестувальник регулярних виразів дозволяє створювати, тестувати та налагоджувати регулярні вирази з підсвічуванням збігів у реальному часі. Миттєво переглядайте збіги, групи захоплення та результати заміни під час введення. Працює із синтаксисом регулярних виразів JavaScript.

Онлайн-тестувальник регулярних виразів із попереднім переглядом у реальному часі

Введіть свій шаблон регулярного виразу та дивіться, як збіги підсвічуються в режимі реального часу. Наш тестувальник регулярних виразів підтримує всі прапорці JavaScript, зокрема:

  • global
  • case-insensitive
  • multiline
  • dotAll

Кожен збіг підсвічується, а групи захоплення відображаються окремо для зручного налагодження.

Конструктор та налагоджувач регулярних виразів

Створюйте складні регулярні вирази за допомогою нашого інтерактивного інструмента. Подивіться точно, що саме і чому відповідає ваш шаблон.

Групи захоплення пронумеровані та відображаються на екрані, що полегшує створення шаблонів для:

  • витягнення даних
  • валідації
  • обробки тексту

Шпаргалка та довідник з регулярних виразів

Коротка довідка щодо стандартного синтаксису регулярних виразів:

  • класи символів (\d, \w, \s)
  • квантори (+, *, ?, {n})
  • прив'язки (^, $, \b)
  • групи та альтернація
  • випереджувальні та ретроспективні перевірки

Усе необхідне для створення шаблонів regex просто біля тестувальника.

Що таке регулярний вираз і як він працює?

Регулярний вираз (regex) — це послідовність символів, що визначає шаблон пошуку для зіставлення тексту. Рушій regex зчитує шаблон і сканує вхідний рядок зліва направо, намагаючись знайти збіг у кожній позиції, доки він не буде успішним або рядок не закінчиться.

Згідно з MDN Web Docs, регулярні вирази в JavaScript — це об'єкти, створені або за допомогою літералу (/pattern/flags), або через конструктор RegExp. Формальний синтаксис та семантика зіставлення визначені в специфікації мови ECMAScript, яку підтримує TC39, тоді як ширша теорія сягає корінням у регулярні мови в теорії формальних мов.

Більшість сучасних рушіїв, зокрема в Chrome (V8), Node.js та .NET, реалізують рушії пошуку на основі звітів про повернення (backtracking), які підтримують такі функції, як зворотні посилання та перевірки навколо (lookaround), виходячи за межі чистих скінченних автоматів.

Як використовувати класи символів та квантори в регулярних виразах

Класи символів та квантори є основними будівельними блоками будь-якого шаблону regex. Клас символів на кшталт [a-z] відповідає будь-якому одному символу в наборі, тоді як скорочені класи, такі як \d (цифра), \w (символ слова) та \s (пробіл), визначені в специфікації ECMAScript та описані в MDN Web Docs.

Квантори керують повторенням:

  • * означає нуль або більше
  • + означає один або більше
  • ? означає нуль або один
  • {n,m} відповідає від n до m разів

Комбінуйте їх для створення точних шаблонів, наприклад \d{3}-\d{4} для фрагмента телефону. Заперечні класи, такі як [^0-9], відповідають усьому, крім перелічених символів, що дає вам точний контроль над тим, який саме текст приймає ваш шаблон.

Щو هي Прив'язки, Межі та Перевірки Навколо в Regex?

Прив'язки та межі відповідають позиціям, а не символам, дозволяючи вам вказувати, де має відбутися збіг, без поглинання тексту. Знак каретки ^ прив'язується до початку рядка (або рядка з прапорцем багаторідкового режиму), $ прив'язується до кінця, а \b позначає межу слова між словом і несловним символом, як описано в MDN Web Docs та специфікації ECMAScript.

Асерції перевірки навколо розширюють цю ідею: випереджувальна перевірка (?=...) та негативна випереджувальна перевірка (?!...) перевіряють те, що йде далі, тоді як ретроспективна перевірка (?<=...) та (?

Ці нульові асерції є важливими для правил паролів, валідації та пошуку лише у певних контекстах.

Як використовувати іменовані групи захоплення та зворотні посилання

Іменовані групи захоплення дозволяють маркувати захоплений підрядок для створення чіткіших і простіших у підтримці шаблонів. Додані до JavaScript у ECMAScript 2018 та описані в MDN Web Docs, синтаксис (?\d{4}) призначає ім'я 'year' групі, до якої можна отримати доступ через match.groups.year.

Зворотні посилання повторно використовують раніше захоплене значення пізніше в тому ж шаблоні: \1 посилається на першу пронумеровану групу, а \k посилається на іменовану групу. Наприклад, (?['\"]).*?\k відповідає рядку в лапках, який закривається тим самим символом лапок, яким відкрився.

Іменовані групи покращують читабельність порівняно з позиційними індексами, особливо в складних шаблонах для синтаксичного аналізу дат, URL-адрес або структурованих рядків журналу.

Як тестувати та налагоджувати Regex для перевірки електронної пошти та URL

Regex широко використовується для перевірки та вилучення електронних листів і URL-адрес, хоча повна відповідність стандартам RFC є оманливо складною. Формат електронної пошти визначено в RFC 5322, і його граматика адресації настільки складна, що жоден короткий regex не охоплює її ідеально; MDN Web Docs та специфікація HTML WHATWG рекомендують прагматичний шаблон для поля введення type=email замість суворого парсера RFC 5322.

URL-адреси слідують загальному синтаксису в RFC 3986. Для більшості додатків м'який шаблон, який відловлює очевидні помилки та здійснює справжню перевірку доставки або запиту, є більш надійним, ніж вичерпний вираз.

Використовуйте цей тестувальник, щоб перевірити ваш шаблон на дійсних та недійсних зразках перед відправкою, відловлюючи помилкові негативні результати, які могли б відхилити легітимне введення користувача.

Чи безпечний Regex? Розуміння ReDoS та небезпек для безпеки

Regex безпечний для пошуку збігів, але може створити ризик відмови в обслуговуванні, якщо шаблони написані недбало. Відмова в обслуговуванні через регулярні вирази (ReDoS), описана OWASP, виникає, коли рушій зіставлення стикається з катастрофічним поверненням (catastrophic backtracking) на створеному вході, що спричиняє експоненціальний час і зависання процесу. Класичним тригером є вкладені або перекриваючіся квантори в неоднозначних шаблонах, таких як (a+)+$ проти довгого рядка 'a', за яким слідує невідповідний символ.

OWASP рекомендує:

  • уникати вкладених кванторів
  • використовувати атомарні групи або ексклюзивні квантори там, де вони підтримуються
  • встановлювати тайм-аути виконання
  • ніколи не створювати шаблони з ненадійного введеного користувачем тексту без валідації

Коли ви запускаєте regex проти контрольованого зловмисником тексту, віддавайте перевагу добре протестованим шаблонам бібліотек та тестуйте найгірші вхідні дані в цьому інструменті перед розгортанням.

Чим відрізняються прапорці Regex у JavaScript, Python та PCRE?

Прапорці Regex мають спільні концепції в різних мовах, але відрізняються синтаксисом та доступними функціями. У JavaScript прапорці додаються до літералу (/pattern/gi) або передаються як другий аргумент конструктора RegExp, де g, i, m, s, u та y визначені в специфікації ECMAScript та пояснені в MDN Web Docs.

Модуль Python re використовує внутрішні прапорці на зразок re.IGNORECASE або префікси (?i) і не має липкого прапорця (sticky flag). PCRE та сумісні з Perl рушії, які використовуються PHP та багатьма інструментами, підтримують подібні модифікатори плюс розширені функції.

Цей тестувальник використовує рушій JavaScript, тому шаблони поводяться саме так, як у браузерах та Node.js. Під час перенесення шаблону на іншу мову повторно перевірте поведінку кванторів, обробку Unicode та підтримку ретроспективних перевірок, оскільки вони відрізняються між реалізаціями.

Поширені помилки в Regex та як їх уникнути

Найпоширеніші помилки в regex стосуються неекранованих спеціальних символів, жадібних кванторів та забутих прапорців. Метасимволи, такі як . ( ) [ ] { } + * ? ^ $ | \ мають спеціальне значення і повинні бути екрановані зворотною косою рисою для буквального зіставлення згідно зі специфікацією ECMAScript та MDN Web Docs; гола точка . відповідає будь-якому символу, а не крапці.

Жадібні квантори на зразок .+ перебирають зайве і поглинають більше, ніж задумано, тому використовуйте ліниві версії .+? під час пошуку між розділювачами. Забутий прапорець g повертає лише перший збіг, а відсутність прив'язок дозволяє шаблонам відповідати непередбачуваним підрядкам.

Інші підводні камені включають ігнорування Unicode за допомогою прапорця u та припущення, що ретроспективні перевірки працюють скрізь. Протестуйте крайні випадки, такі як порожні рядки, символи нового рядка та ворожі вхідні дані в цьому інструменті, перш ніж покладатися на будь-який шаблон.

Frequently Asked Questions

sell

Tags