Maison > Questions et réponses > le corps du texte
P粉1414555122023-08-24 10:47:54
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粉3189281592023-08-24 10:01:04
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");