Wie füge ich eine Variable in eine Übereinstimmung mit regulären Ausdrücken ein?

Lesezeit: 2 Minuten

Der Benutzeravatar einer anderen Person
jemand anderes

Ich habe den folgenden Ausschnitt. Ich möchte das Aussehen von finden a, aber es funktioniert nicht. Wie kann ich die Variable richtig setzen?

var string1 = 'asdgghjajakhakhdsadsafdgawerwweadf';
var string2 = 'a';
string1.match("https://stackoverflow.com/" + string2 + '/g').length;

Sie müssen das verwenden RegExp Konstruktor anstelle eines Regex-Literals.

var string = 'asdgghjjkhkh';
var string2 = 'a';
var regex = new RegExp( string2, 'g' );
string.match(regex);

Wenn Sie den globalen Modifikator nicht benötigen, können Sie einfach bestehen string2Und .match() erstellt den regulären Ausdruck für Sie.

string.match( string2 );

  • Möglicherweise möchten Sie die Variable mit einer Zeichenfolge kombinieren. In diesem Fall sollte jedes Escapezeichen doppelt maskiert werden. Wenn Sie ein „a“ gefolgt von einer Ziffer zuordnen möchten: var str = "abca1cba3a"; var search = "a"; var re = new RegExp (search + '\\d', 'g'); str.match(re); // result: ['a1', 'a3']

    – publicJorn

    2. September 2015 um 9:00 Uhr

Wenn Sie lediglich überprüfen möchten, ob eine Zeichenfolge eine andere Zeichenfolge enthält, verwenden Sie am besten einfach match() ohne einen regulären Ausdruck.

Sie können Widerspruch einlegen: Aber ich brauche einen regulären Ausdruck, um nach Klassen zu suchen \sum komplizierte Muster usw. zu definieren.

In diesem Fall: Sie müssen die Syntax noch weiter ändern, Ihre Klassen doppelt maskieren und Start/Ende weglassen / Regex-Indikatorsymbole.

Stellen Sie sich diesen regulären Ausdruck vor …

someString.match(/\bcool|tubular\b);

Das genaue Äquivalent davon, wenn ein neues verwendet wird new RegExp()Ist…

someStringRegex = new RegExp('\\bcool|tubular\\b');

Bei diesem Übergang geschahen zwei Dinge:

  • Lassen Sie das Öffnen und Schließen fallen / (Andernfalls schlägt Ihr regulärer Ausdruck fehl).
  • Entkommen Sie Ihren Charakterklassen doppelt, z \b wird \\b für Wortgrenzen und \w wird \\w für Leerzeichen usw. (andernfalls schlägt Ihr regulärer Ausdruck fehl).

Hier ist ein weiteres Beispiel: //Bestätigen Sie, ob eine Zeichenfolge am Ende ein Ziel enthält (beides sind Variablen in der folgenden Funktion, z. B. bestätigen Sie, ob str „Abstraction“ am Ende das Ziel „action“ enthält).

function confirmEnding(string, target) {
    let regex = new RegExp(target);
    return regex.test(string);
};

1451990cookie-checkWie füge ich eine Variable in eine Übereinstimmung mit regulären Ausdrücken ein?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy