Comment rendre une expression régulière insensible à la casse?

Je travaille sur une règle dexpédition Drupal Commerce et jai besoin dune expression régulière pour comparer les codes postaux avec ladresse des acheteurs comme ci-dessous;

/^AB37|^AB38|^AB41/ 

Je trouve que ce code est sensible à la casse et jai besoin quil soit plus détendu, autorisant les minuscules ou mixtes.

Jai lu jai besoin dun « i » drapeau, mais je ne sais pas comment lappliquer.

Quelquun pourrait-il me donner un exemple?

Commentaires

  • Oui, ' est parfait, vous utilisez un indicateur i: /^AB37|^AB38|^AB41/i
  • Merci pour les suggestions. Je me rends compte que la question peut être assez générale, mais il sagit spécifiquement dun cas dutilisation courant pour commerce_shipping, donc je dirais que ce nest pas hors sujet.
  • @Clive Jai essayé votre suggestion sans succès I ' jai peur – la règle ne se déclenche pas du tout. Le texte daide du champ se lit comme suit: ' Une expression régulière (" / (35 | 38) [0-9] {3} / ") ou une liste séparée par des virgules, y compris les plages (" 98, 100: 200 " ) '
  • Lindicateur i vient à la fin. Vous pouvez tester votre règle à laide de cet outil: regexr.com – sinon, ' je dirais que le DC a tort ici si il na pas ' accepter une expression régulière valide.
  • @Kevin DC ne ' semble accepter une virgule séparée liste des codes postaux non plus. Essayez donc avec regex. Peut-être un bogue

Réponse

La casse insensible consiste généralement à ajouter un caractère « i » après la barre de délimitation, quelque chose comme ceci: / ^ AB37 | ^ AB38 | ^ AB41 / i

mais cela dépend du cas où il peut être changé. Dans JS, par exemple, ajouter un nouveau paramètre (var re = new RegExp(myVar,"ig")) ou en php est preg_match("[expression]i", $text, $matches);

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *