Det finns två sätt att skapa instanser för reguljära uttryck. I det ena sättet används snedstreck (
/
) för att avgränsa det reguljära uttrycket; i det andra används konstruktorn
new
. Följande reguljära uttryck är till exempel likvärdiga:
var pattern1:RegExp = /bob/i;
var pattern2:RegExp = new RegExp("bob", "i");
Snedstrecket urskiljer en litteral för ett reguljärt uttryck på samma sätt som citattecken urskiljer en stränglitteral. Den del av det reguljära uttrycket som finns inom snedstrecken definierar
mönstret.
Reguljära uttryck kan också innehålla flaggor efter det avslutande snedstrecket. Dessa flaggor anses ingå som en del av det reguljära uttrycket, men de ingår inte i mönstret.
När du använder konstruktorn
new
använder du två strängar för att definiera det reguljära uttrycket. Den första strängen definierar mönstret och den andra strängen flaggorna, vilket framgår av följande exempel:
var pattern2:RegExp = new RegExp("bob", "i");
När det finns ett snedstreck
within
ett reguljärt uttryck, som definierats med hjälp av snedstrecksavgränsare, måste du före snedstrecket skriva ett omvänt snedstreck (
\
) som ett escape-tecken. Följande reguljära uttryck matchar mönstret
1/2
:
var pattern:RegExp = /1\/2/;
Om du vill använda citattecken
inom
ett reguljärt uttryck, som definierats med konstruktorn
new
, måste du skriva ett omvänt snedstreck (
\
) som ett escape-tecken före citattecknen (precis som för String-litteraler). Följande reguljära uttryck matchar mönstret
eat at "joe's"
:
var pattern1:RegExp = new RegExp("eat at \"joe's\"", "");
var pattern2:RegExp = new RegExp('eat at "joe\'s"', "");
Du ska inte använda omvända snedstreck som escape-tecken tillsammans med citattecken i reguljära uttryck som definieras med snedstreck som avgränsare. Du ska inte heller använda escape-tecken med snedstreck i reguljära uttryck som är definierade med konstruktorn
new
. Följande reguljära uttryck är likvärdiga och de definierar båda mönstret
1/2 "joe's"
:
var pattern1:RegExp = /1\/2 "joe's"/;
var pattern2:RegExp = new RegExp("1/2 \"joe's\"", "");
var pattern3:RegExp = new RegExp('1/2 "joe\'s"', '');
Om en metasekvens som börjar med ett omvänt snedstreck (
\
) används i ett reguljärt uttryck som är definierat med konstruktorn
new
, t.ex.
\d
(som matchar alla siffror), skriver du det omvända snedstrecket två gånger som i följande exempel:
var pattern:RegExp = new RegExp("\\d+", ""); // matches one or more digits
I detta fall måste du skriva det omvända snedstrecket två gånger eftersom den första parametern till konstruktormetoden
RegExp()
är en sträng och i en stränglitteral måste du skriva det omvända snedstrecket två gånger för att det ska tolkas som ett enkelt omvänt snedstreck.
I följande avsnitt beskrivs syntaxen för att definiera mönster för reguljära uttryck.
Mer information om flaggor finns i
Flaggor och egenskaper
.