国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Comment utiliser des variables dans les expressions régulières ?
P粉763748806
P粉763748806 2023-08-23 15:12:16
0
2
748
<p>Je souhaite créer une méthode <code>String.replaceAll()</code> en JavaScript et je pense que l'utilisation d'expressions régulières est le moyen le plus propre. Cependant, je ne sais pas comment transmettre des variables à l'expression régulière. Je peux déjà le faire, en rempla?ant toutes les instances de <code>"B"</code> par <code>"A"</code>. </p> <pre class="brush:php;toolbar:false;">"ABABAB".replace(/B/g, "A");</pre> <p>Mais je veux faire quelque chose comme ceci?: </p> <pre class="brush:php;toolbar:false;">String.prototype.replaceAll = function(replaceThis, withThis) { this.replace(/replaceThis/g, withThis); };</pré> <p>Mais apparemment, cela ne remplacera que le texte <code>"replaceThis"</code>... Alors, comment puis-je transmettre cette variable dans ma cha?ne regex?? </p>
P粉763748806
P粉763748806

répondre à tous(2)
P粉141455512

Comme Eric Wendelin l'a mentionné, vous pouvez faire ceci :

str1 = "pattern"
var re = new RegExp(str1, "g");
"pattern matching .".replace(re, "regex");

Cela produira “正則表達式匹配。”。但是,如果 str1 是 ".",則會失敗。您期望結果為“模式匹配正則表達式”,用“正則表達式”替換句點, mais le résultat sera...

regexregexregexregexregexregexregexregexregexregexregexregexregexregexregexregexregexregex

En effet, bien que "." soit une cha?ne, dans le constructeur RegExp, elle est toujours interprétée comme une expression régulière, représentant tout caractère autre qu'une nouvelle ligne, représentant chaque caractère de la cha?ne. A cet effet, les fonctions suivantes peuvent être utiles :

RegExp.quote = function(str) {
     return str.replace(/([.?*+^$[\]\(){}|-])/g, "\");
 };

Ensuite, vous pouvez faire ceci?:

str1 = "."
var re = new RegExp(RegExp.quote(str1), "g");
"pattern matching .".replace(re, "regex");

produit“模式匹配正則表達式”.

P粉318928159

Vous pouvez construire un nouvel objet RegExp?:

var replace = "regex\d";
var re = new RegExp(replace,"g");

Vous pouvez créer des objets d'expression régulière de manière dynamique de cette fa?on. Ensuite vous ferez :

"mystring1".replace(re, "newstring");
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal