Maison > interface Web > js tutoriel > le corps du texte

Comment faire correspondre les caractères non ASCII avec les limites des mots dans JavaScript Regex ?

Barbara Streisand
Libérer: 2024-10-27 04:46:29
original
551 Les gens l'ont consulté

How to Match Non-ASCII Characters with Word Boundaries in JavaScript Regex?

Correspondance des caractères non-ASCII dans l'expression régulière JavaScript avec les limites des mots

En JavaScript, l'objet RegExp avec la correspondance de la limite du mot (b) peut rencontrer limitations lors de la gestion des caractères non-ASCII comme les voyelles finlandaises (ä, ö et å). Pour faire correspondre avec précision ces caractères, nous devons ajuster notre approche.

Considérez le code suivant :

<code class="javascript">var title = "this is simple string with finnish word tämä on ääkköstesti älkää ihmetelkö";
var searchterm = "äl";

if (new RegExp("\b" + searchterm, "gi").test(title)) {
  // This does not work for "äl"
}</code>
Copier après la connexion

Ce code tente de faire correspondre le terme « äl » dans le titre en utilisant la limite b. . Cependant, cela échoue car b correspond aux limites de mots basées sur la plage standard de 256 octets, à l'exclusion des caractères non-ASCII.

Solution : groupe sans capture avec limite de mots

Pour résoudre ce problème, nous pouvons remplacer b par un groupe non capturant qui correspond explicitement au début de la chaîne ou aux espaces :

<code class="javascript">if (new RegExp("(?:^|\s)" + searchterm, "gi").test(title)) {
  // Now it works for "äl"
}</code>
Copier après la connexion

Répartition :

  • (?:...) : groupe non capturant
  • ^ : début de la chaîne
  • s : espaces
  • | : opérateur "ou"

Ce code modifié correspondra au terme « äl » dans le titre car il définit une condition limite de début de mot plus flexible qui inclut des caractères non-ASCII.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!