Шаблонный символ: .
Базовый уровень Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 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