萬用字元:.

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

萬用字元匹配除行終止符外的所有字元。如果設定了 s 標誌,它也會匹配行終止符。

語法

正則表示式
.

描述

. 匹配除行終止符外的任何字元。如果設定了s 標誌,. 也會匹配行終止符。

. 匹配的具體字元集取決於正則表示式是否支援 Unicode。如果支援 Unicode,. 匹配任何 Unicode 碼點;否則,它匹配任何 UTF-16 碼元。例如

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

示例

與量詞一起使用

萬用字元通常與量詞一起使用,以匹配任何字元序列,直到找到下一個感興趣的字元。例如,以下示例提取 Markdown 頁面中形如 # 標題 的標題

js
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 標誌使 . 匹配行終止符,因為程式碼塊的內容可能跨多行

js
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® 2026 語言規範
# prod-Atom

瀏覽器相容性

另見