JavaScript – Variable im String-Match verwenden

Lesezeit: 2 Minuten

Benutzer-Avatar
mesnicka

Ich habe mehrere ähnliche Fragen gefunden, aber es hat mir nicht geholfen. Also ich habe dieses Problem:

var xxx = "victoria";
var yyy = "i";
alert(xxx.match(yyy/g).length);

Ich weiß nicht, wie man eine Variable im Match-Befehl übergibt. Bitte helfen Sie. Vielen Dank.

  • Exaktes Duplikat von Wie übergeben Sie eine Variable an ein JavaScript mit regulären Ausdrücken?. Mehr suchen 😉

    – Dan Dascalescu

    4. April 2014 um 1:46 Uhr


  • Noch etwas: Wenn Sie eine Variable verwenden, um einen regulären Ausdruck zu erstellen, sollten Sie darauf achten, dass die Variable Regex-Sonderzeichen enthalten könnte. Wenn Sie zB “c++” übergeben, wird sich der Regex-Compiler beschweren SyntaxError: Invalid regular expression: /c++/: Nothing to repeat

    – dotslashlu

    19. Dezember 2016 um 3:37 Uhr


Obwohl die Match-Funktion keine String-Literale als Regex-Muster akzeptiert, können Sie den Konstruktor des RegExp-Objekts verwenden und diesen an die String.match-Funktion übergeben:

var re = new RegExp(yyy, 'g');
xxx.match(re);

Alle Flags, die Sie benötigen (z. B. /g), können in den zweiten Parameter aufgenommen werden.

  • +1, dies ist übrigens der bevorzugte Weg, wenn das Argument an die übergeben wird match Methode ist keine RegExp Objekt, intern die RegExp Der Konstruktor wird mit diesem Wert aufgerufen, sodass Sie a verwenden können Saitenmusterz.B: "a123".match("\\d+")[0] === "123";

    – Christian C. Salvado

    3. Juli 2010 um 22:42 Uhr


Sie müssen verwenden RegExp-Objekt wenn Ihr Muster Zeichenfolge ist

var xxx = "victoria";
var yyy = "i";
var rgxp = new RegExp(yyy, "g");
alert(xxx.match(rgxp).length);

Wenn das Muster kein dynamischer String ist:

var xxx = "victoria";
var yyy = /i/g;
alert(xxx.match(yyy).length);

Benutzer-Avatar
Driton Haxhiu

Zum Beispiel:

let myString = "Hello World"
let myMatch = myString.match(/H.*/)
console.log(myMatch)

Oder

let myString = "Hello World"
let myVariable = "H"
let myReg = new RegExp(myVariable + ".*")
let myMatch = myString.match(myReg)
console.log(myMatch)

  • Es ist hilfreich, aber wenn ich let myString = “Tata Nexon EV Tata” verwende, let myVariable = “Tata” let myReg = new RegExp(“\b”+myVariable , “g”) let myMatch = myString.match(myReg) console. log(myMatch) funktioniert nicht

    – Arindam Sarkar

    2. Juni um 14:34 Uhr

Beispiel. Um die Anzahl der Vokale innerhalb der Zeichenfolge zu finden

var word='Web Development Tutorial';
var vowels="[aeiou]"; 
var re = new RegExp(vowels, 'gi');
var arr = word.match(re);
document.write(arr.length);

Für mich hilft es sowieso, es verwendet zu sehen. habe dies gerade anhand des “re” -Beispiels gemacht:

var analyte_data="sample-"+sample_id;
var storage_keys = $.jStorage.index();
var re = new RegExp( analyte_data,'g');  
for(i=0;i<storage_keys.length;i++) { 
    if(storage_keys[i].match(re)) {
        console.log(storage_keys[i]);
        var partnum = storage_keys[i].split('-')[2];
    }
}

Benutzer-Avatar
SilentGhost

xxx.match(yyy, 'g').length

1216160cookie-checkJavaScript – Variable im String-Match verwenden

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

Privacy policy