Перевірте регулярні вирази JavaScript на прикладах тексту
Використовуйте цей інструмент, коли потрібно перевірити, що відповідає JavaScript-Regex перед його використанням у фронтенді, Node.js або TypeScript.
Вставте приклад тексту, введіть шаблон без обрамлення слешами, виберіть прапори, а потім перегляньте збіги, групи та результат заміни.
Що означає кожен результат
- Виділені збіги показує, де шаблон співпав у прикладному тексті.
- Збіги та групи перелічує діапазони збігів, нумеровані групи та іменовані групи.
- Попередній перегляд заміни передбачає JavaScript
String.replace()з вашим рядком заміни. - Копіювати match JSON копіює структуровані дані збігів. Копіювати результат заміни копіює текст попереднього перегляду заміни.
- Копіювати URL копіює поточний шаблон, прапори, заміну та приклад тексту в хеші URL.
Підтримувані прапори
| Flag | Name | Effect |
|---|---|---|
g | Global | Знаходити всі збіги замість лише першого. |
i | Ігнорувати регістр | Збіг літер без врахування регістру. |
m | Multiline | Make ^ and $ працюють на кожному рядку. |
s | DotAll | Let . дозволяє '.' відповідати символам нового рядка. |
u | Unicode | Використовувати правила відповідності з урахуванням Unicode. |
y | Sticky | Відповідати лише з поточного JavaScript lastIndex. |
Limits
- Це тестувальник JavaScript
RegExpтестер, а не PCRE, Python, Java, SQL або .NET тестувальник регулярних виразів. - Приклад тексту та зібрані збіги обмежені, щоб сторінка залишалась чутливою.
- Деякі очевидні шаблони з вкладеними квантифікаторами блокуються, але це не повний аналізатор ReDoS.
- JavaScript не надає синхронного тайм-ауту для одного виконання регулярного виразу.
- Хеші URL можуть містити вставлений приклад тексту. Видаліть приватні логи або секрети перед тим, як ділитися скопійованим URL.
Часті запитання
Який синтаксис регулярних виразів використовує ця сторінка?
Використовує JavaScript RegExp синтаксис. Використовуйте його для роботи з регулярними виразами в браузері, Node.js і TypeScript. Шаблони, написані для PCRE, Python, Java, SQL або .NET, можуть поводитися по-іншому.
Чому я бачу тільки один збіг?
Додайте прапор g, JavaScript зазвичай повертає перший збіг. g прапор для збору всіх збігів. Без g, JavaScript зазвичай повертає перший збіг.
Чи можу я використовувати іменовані групи в замінах?
Так. Іменовані групи, такі як (?<level>ERROR|WARN) з’являються в деталях збігів і можуть бути повторно використані в тексті заміни як $<level>.
Яка різниця між Копіювати match JSON і Копіювати результат заміни?
Копіювати match JSON копіює діапазони збігів і групи у форматі JSON. Копіювати результат заміни копіює текст, отриманий у попередньому перегляді заміни.
Чи може це виявити небезпечні шаблони зворотного обходу?
Лише частково. Інструмент блокує деякі очевидні шаблони з вкладеними квантифікаторами та обмежує розмір вводу, але це не повний аналізатор ReDoS.