如何替换字符串中的 $1 , $2
How to replace $1 , $2 in string
var params = ['tom' , 'harry'];
var string = 'hello and how aa are you and ';
我试过的
var params = ['tom' , 'harry'];
var string = 'hello , how aa are you , ';
var temp;
for(var i = 0; i<params.length ; i++)
{
temp = string.replace(/[]+/g,params[i]);
}
Firefox 控制台错误输出:"hello harry ,harry2 how aa are you harry , harry2"
Final Output : hello tom and harry how are you tom and harry
要回答这个问题,如果您真的想用 tom 替换 $1,您可以搜索 \$1(注意转义的 $)并替换为 tom.
我感觉你真正的意思是你在 $1 和 $2 出现的位置有一些文本。如果是这种情况,您真的不需要查找和替换;你只需要在这些位置输出你的变量。
一个解决方案:
string.replace(/$1/g, params[0]).replace(/$2/g,params[1])
更多说明:
我之所以把 </code> 写成 <code>$1
是因为 , ,...
在正则表达式中有特殊的含义。它们被视为特殊字符。例如,如果您想在字符串中搜索 .
(点),那么您不能只将 .
放在正则表达式中,因为在正则表达式中 .
表示匹配字符串中的任何字符(也包括点);所以,为了在你的字符串中找到 .
你必须在点之前放置(斜杠 \
),比如 \.
,在正则表达式中,这样正则表达式引擎可以找到准确的 .
字符。
var params = ['tom', 'harry'];
var string = "hello en ";
string = string.replace("", params[0]).replace("", params[1]);
这是对@muhammad imran 解决方案的灭绝,使用 for 循环
var params = ['tom' , 'dick', 'harry'];
var string = 'hello , how aa are you , , ';
var stringToFire = ''
for(var i = 0 ;i<params.length;i++)
{
var forDollar = i+ 1;
var forReplacer = i;
stringToFire = stringToFire + '.replace(/\$dollarNumber/g, params[donkey])'.replace('dollarNumber',forDollar).replace('donkey',forReplacer );
}
var ultimateString = 'string'+stringToFire
eval(ultimateString);
Final Output : hello tom and harry how are you tom and harry
Replace using SPLIT and JOIN - Don't always need to use .replace
var params = ['tom' , 'harry'];
var string = 'hello , how aa are you , ';
for(var i = 0; i<params.length ; i++)
{
var st = '$' +( i + 1);
string = string.split(st).join(params[i])
}
OutPut : "hello tom ,harry how aa are you tom , harry"
var params = ['tom' , 'harry'];
var string = 'hello and how aa are you and ';
我试过的
var params = ['tom' , 'harry'];
var string = 'hello , how aa are you , ';
var temp;
for(var i = 0; i<params.length ; i++)
{
temp = string.replace(/[]+/g,params[i]);
}
Firefox 控制台错误输出:"hello harry ,harry2 how aa are you harry , harry2"
Final Output : hello tom and harry how are you tom and harry
要回答这个问题,如果您真的想用 tom 替换 $1,您可以搜索 \$1(注意转义的 $)并替换为 tom.
我感觉你真正的意思是你在 $1 和 $2 出现的位置有一些文本。如果是这种情况,您真的不需要查找和替换;你只需要在这些位置输出你的变量。
一个解决方案:
string.replace(/$1/g, params[0]).replace(/$2/g,params[1])
更多说明:
我之所以把 </code> 写成 <code>$1
是因为 , ,...
在正则表达式中有特殊的含义。它们被视为特殊字符。例如,如果您想在字符串中搜索 .
(点),那么您不能只将 .
放在正则表达式中,因为在正则表达式中 .
表示匹配字符串中的任何字符(也包括点);所以,为了在你的字符串中找到 .
你必须在点之前放置(斜杠 \
),比如 \.
,在正则表达式中,这样正则表达式引擎可以找到准确的 .
字符。
var params = ['tom', 'harry'];
var string = "hello en ";
string = string.replace("", params[0]).replace("", params[1]);
这是对@muhammad imran 解决方案的灭绝,使用 for 循环
var params = ['tom' , 'dick', 'harry'];
var string = 'hello , how aa are you , , ';
var stringToFire = ''
for(var i = 0 ;i<params.length;i++)
{
var forDollar = i+ 1;
var forReplacer = i;
stringToFire = stringToFire + '.replace(/\$dollarNumber/g, params[donkey])'.replace('dollarNumber',forDollar).replace('donkey',forReplacer );
}
var ultimateString = 'string'+stringToFire
eval(ultimateString);
Final Output : hello tom and harry how are you tom and harry
Replace using SPLIT and JOIN - Don't always need to use
.replace
var params = ['tom' , 'harry'];
var string = 'hello , how aa are you , ';
for(var i = 0; i<params.length ; i++)
{
var st = '$' +( i + 1);
string = string.split(st).join(params[i])
}
OutPut : "hello tom ,harry how aa are you tom , harry"