急!急!急!
我现在有这样一个字符串 '我叫${name},今年${age}岁了'
有一个正则可以替换掉里面的变量 let reg = /${age}/g;
但是这样只能固定换掉name或者age,我现在想在里面放一个变量该如何写呢?
急!急!急!
我现在有这样一个字符串 '我叫${name},今年${age}岁了'
有一个正则可以替换掉里面的变量 let reg = /${age}/g;
但是这样只能固定换掉name或者age,我现在想在里面放一个变量该如何写呢?
模板字符串
https://developer.mozilla.org...
javascript - 将字符串转换为模板字符串
https://www.itranslater.com/q...
String.prototype.interpolate = function(params) {
const names = Object.keys(params);
const vals = Object.values(params);
return new Function(...names, `return \`${this}\`;`)(...vals);
}
const template = 'Example text: ${text}';
const result = template.interpolate({
text: 'Foo Boo'
});
console.log(result);//Example text: Foo Boo
你给的代码一般是在类似shell的环境中,或者一些模板系统中,直接输出变量来构成实际内容情况,和正则式(规则式)没有关系。
你要中模板中,把 变量站位 符 替换成变量实际值,其实就是一个 字符串replace处理,
你前面已经写好了规则式,就在需要应用的地方按下面处理,多个不同规则式替换需要多次处理。
instr.replace(/规则式/,"变量值");
例如
const inStr=" ${name},你好!\n${name}今年${age}岁。";
let nRe=/\$\{name\}/g
let aRe=/\$\{age\}/g
let name="小王";
let age=5;
console.log( (inStr.replace(nRe,name)).replace(aRe,age) )
var replace = (str, data) => str.replace(/${(.*?)}/g,(match, $1) => data[$1])
这样?
8 回答4.5k 阅读✓ 已解决
6 回答3.1k 阅读✓ 已解决
5 回答2.7k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答2.4k 阅读
正则解释:
1、
(?<=\$\{)
表示查找 ${ 后面的内容2、
(?=\})
表示查找 } 前面的内容3、
[^\{\}]
表示不包含 { 或 } 字符串如有帮助,请采纳,Thanks♪(・ω・)ノ