J'ai trouvé plusieurs questions similaires, mais cela ne m'a pas aidé. J'ai donc ce problème:
var xxx = "victoria";
var yyy = "i";
alert(xxx.match(yyy/g).length);
Je ne sais pas comment passer la variable dans la commande match. Veuillez aider. Merci.
javascript
variables
match
mesnicka
la source
la source
SyntaxError: Invalid regular expression: /c++/: Nothing to repeat
Réponses:
Bien que la fonction de correspondance n'accepte pas les littéraux de chaîne comme modèles d'expression régulière, vous pouvez utiliser le constructeur de l'objet RegExp et le transmettre à la fonction String.match:
var re = new RegExp(yyy, 'g'); xxx.match(re);
Tous les indicateurs dont vous avez besoin (tels que / g) peuvent entrer dans le deuxième paramètre.
la source
match
méthode n'est pas unRegExp
objet, en interne leRegExp
constructeur sera appelé en utilisant cette valeur, vous pouvez donc utiliser un modèle de chaîne , par exemple:"a123".match("\\d+")[0] === "123";
Vous devez utiliser l' objet RegExp si votre modèle est une chaîne
var xxx = "victoria"; var yyy = "i"; var rgxp = new RegExp(yyy, "g"); alert(xxx.match(rgxp).length);
Si le modèle n'est pas une chaîne dynamique:
var xxx = "victoria"; var yyy = /i/g; alert(xxx.match(yyy).length);
la source
Par exemple:
let myString = "Hello World" let myMatch = myString.match(/H.*/) console.log(myMatch)
Ou
let myString = "Hello World" let myVariable = "H" let myReg = new RegExp(myVariable + ".*") let myMatch = myString.match(myReg) console.log(myMatch)
la source
Exemple. Pour trouver le nombre de voyelles dans la chaîne
var word='Web Development Tutorial'; var vowels='[aeiou]'; var re = new RegExp(vowels, 'gi'); var arr = word.match(re); document.write(arr.length);
la source
pour moi en tout cas, ça aide de le voir utilisé. vient de faire ceci en utilisant l'exemple "re":
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]; } }
la source
xxx.match(yyy, 'g').length
la source
String.prototype.match
méthode n'attend qu'un seul argument . Utiliser leRegExp
constructeur, comme @Chris le suggère, est la méthode préférée.