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 variable dans la commande de correspondance. S'il vous plaît aider. Merci.
Bien que la fonction match n'accepte pas les littéraux de chaîne en tant que modèles regex, 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);
Tout indicateur dont vous avez besoin (tel que/g) peut aller dans le deuxième paramètre.
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)
Vous devez utiliser 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 motif n'est pas une chaîne dynamique:
var xxx = "victoria";
var yyy = /i/g;
alert(xxx.match(yyy).length);
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);
pour moi de toute façon, ça aide de le voir utilisé. vient de faire cela 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];
}
}