Spec-Zone.ru › JavaScript

Шаблонный символ: .

Базовый уровень Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

Шаблонный символ соответствует всем символам, кроме признаков конца строки. Он также соответствует признакам конца строки, если установлен флаг s.

Синтаксис

.

Описание

. соответствует любому символу, кроме признаков конца строки. Если установлен флаг s, . также соответствует признакам конца строки.

Точный набор символов, которому соответствует ., зависит от того, является ли регулярное выражение осведомленным о Юникоде. Если оно осведомлено о Юникоде, . соответствует любой кодовой точке Юникода; в противном случае, оно соответствует любой кодовой единице UTF-16. Например:

/../.test("😄"); // true; matches two UTF-16 code units as a surrogate pair
/../u.test("😄"); // false; input only has one Unicode character

Примеры

Использование с квантификаторами

Шаблонные символы часто используются с квантификаторами для сопоставления любой последовательности символов до тех пор, пока не будет найден следующий интересующий символ. Например, следующий пример извлекает заголовок страницы Markdown в форме # Title:

function parseTitle(entry) {
  // Use multiline mode because the title may not be at the start of
  // the file. Note that the m flag does not make . match line
  // terminators, so the title must be on a single line
  // Return text matched by the first capturing group.
  return /^#[ \t]+(.+)$/m.exec(entry)?.[1];
}

parseTitle("# Hello world"); // "Hello world"
parseTitle("## Subsection"); // undefined
parseTitle(`
---
slug: Web/JavaScript/Reference/Regular_expressions/Wildcard
---

# Wildcard: .

A **wildcard** matches all characters except line terminators.
`); // "Wildcard: ."

Сопоставление содержимого блока кода

Следующий пример сопоставляет содержимое блока кода, заключенного в тройные обратные кавычки в Markdown. Он использует флаг s, чтобы . соответствовал признакам конца строки, поскольку содержимое блока кода может занимать несколько строк:

function parseCodeBlock(entry) {
  return /^```.*?^(.+?)\n```/ms.exec(entry)?.[1];
}

parseCodeBlock(`
\`\`\`js
console.log("Hello world");
\`\`\`
`); // "console.log("Hello world");"

parseCodeBlock(`
A \`try...catch\` statement must have the blocks enclosed in curly braces.

\`\`\`js example-bad
try
  doSomething();
catch (e)
  console.log(e);
\`\`\`
`); // "try\n  doSomething();\ncatch (e)\n  console.log(e);"

Внимание: Эти примеры предназначены только для демонстрации. Если вы хотите разобрать Markdown, используйте специализированный парсер Markdown, поскольку необходимо учитывать множество граничных случаев.

Спецификации

Спецификация
ECMAScript® 2027 Language Specification
# prod-Atom

Совместимость с браузерами

Настольные Мобильные Сервер
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
wildcard
1
12
1
5
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0

См. также

  • Руководство по классам символов
  • Регулярные выражения
  • Класс символов: [...], [^...]
  • Экранирование класса символов: \d, \D, \w, \W, \s, \S

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Wildcard

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API