Hvordan gør man et almindeligt udtryk ufølsomt?

Jeg arbejder på en Drupal Commerce forsendelsesregel, og den har brug for et regelmæssigt udtryk for at sammenligne postnumre med køberens adresse som nedenfor;

/^AB37|^AB38|^AB41/ 

Jeg finder denne kode som store og små bogstaver, og jeg har brug for den for at være mere afslappet, så små bogstaver eller blandes.

Jeg har læst, at jeg har brug for et “i” flag, men jeg er usikker på, hvordan jeg anvender dette.

Kan nogen give mig et eksempel?

Kommentarer

  • Ja, at ' er stedet, du bruger et i flag: /^AB37|^AB38|^AB41/i
  • Tak for forslagene. Jeg er klar over, at spørgsmålet måske er ret generelt, men det handler specifikt om en almindelig brugssag til handel_forsendelse, så jeg vil argumentere for, at det ikke er uden for emnet.
  • @Clive Jeg prøvede dit forslag uden succes I ' er bange – reglen udløses slet ikke. Felthjælpsteksten lyder: ' Et regulært udtryk (" / (35 | 38) [0-9] {3} / ") eller en kommasepareret liste, inklusive intervaller (" 98, 100: 200 " ) '
  • i flag kommer i slutningen. Du kan teste din regel ved hjælp af dette værktøj: regexr.com – ellers hævder jeg ' d, at DC er forkert her, hvis det vil ' ikke acceptere et gyldigt regex.
  • @Kevin DC ser ikke ud til ' t kommasepareret liste over postnumre enten. Prøv derfor med regex. Måske en fejl

Svar

Sagen ufølsom er normalt at tilføje en “i” -tegn efter afgrænsningsbjælken, noget som dette: / ^ AB37 | ^ AB38 | ^ AB41 / i

men afhænger af tilfældet, det kan ændres. I JS tilføjer for eksempel en ny parameter (var re = new RegExp(myVar,"ig")) eller i php er preg_match("[expression]i", $text, $matches);

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *