Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Joker : .

Baseline
Large disponibilité

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

Un joker (wildcard en anglais) correspond à tous les caractères sauf les terminaisons de ligne. Il correspond également aux terminaisons de ligne si le drapeau s est défini.

Syntaxe

regex
.

Description

. correspond à tous les caractères sauf les terminaisons de ligne. Si le drapeau s est défini, . correspond également aux terminaisons de ligne.

L'ensemble exact de caractères auquel correspond . dépend du fait que l'expression soit ou non sensible à l'Unicode. Si elle l'est, . correspond à n'importe quel point de code Unicode ; sinon, elle correspond à n'importe quelle unité de code UTF-16. Par exemple :

js
/../.test("😄"); // true ; correspond à deux unités de code UTF-16 formant une paire de substituts
/../u.test("😄"); // false ; l'entrée ne contient qu'un caractère Unicode

Exemples

Utiliser avec des quantificateurs

Les jokers sont souvent utilisés avec des quantificateurs pour faire correspondre une séquence quelconque de caractères jusqu'au prochain caractère recherché. Par exemple, l'exemple suivant extrait le titre d'une page Markdown sous la forme # Titre :

js
function analyserTitre(entree) {
  // Utilisez le mode sur plusieurs lignes, car le titre peut ne pas se trouver au début du
  // fichier. Notez que l'indicateur m ne fait pas correspondre . aux terminaisons de
  // ligne, le titre doit donc tenir sur une seule ligne
  // Retournez le texte correspondant au premier groupe de capture.
  return /^#[ \t]+(.+)$/m.exec(entree)?.[1];
}

analyserTitre("# Bonjour le monde"); // "Bonjour le monde"
analyserTitre("## Sous-section"); // undefined
analyserTitre(`
---
slug: Web/JavaScript/Reference/Regular_expressions/Wildcard
---

# Joker : .

Un **joker** correspond à tous les caractères sauf les terminaisons de ligne.
`); // "Joker : ."

Faire correspondre le contenu d'un bloc de code

L'exemple suivant fait correspondre le contenu d'un bloc de code délimité par trois accents graves en Markdown. Il utilise l'indicateur s pour que . corresponde aux terminaisons de ligne, car le contenu d'un bloc de code peut s'étendre sur plusieurs lignes :

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

analyserBlocDeCode(`
\`\`\`js
console.log("Bonjour le monde");
\`\`\`
`); // "console.log("Bonjour le monde");"

analyserBlocDeCode(`
Une instruction \`try...catch\` doit encadrer ses blocs avec des accolades.

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

Attention : Ces exemples servent uniquement à la démonstration. Pour analyser du Markdown, utilisez un analyseur Markdown dédié, car il faut tenir compte de nombreux cas particuliers.

Spécifications

Spécification
ECMAScript® 2027 Language Specification
# prod-Atom

Compatibilité des navigateurs

Voir aussi