请教一下大佬正则的问题,实在搞不定

发布于 2022-09-13 00:07:21 字数 190 浏览 25 评论 0

急!急!急!
我现在有这样一个字符串 '我叫${name},今年${age}岁了'
有一个正则可以替换掉里面的变量 let reg = /${age}/g;

但是这样只能固定换掉name或者age,我现在想在里面放一个变量该如何写呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

是你 2022-09-20 00:07:21
'我叫${name},今年${age}岁了'.replace(/(?<=\$\{)[^\{\}]+(?=\})/g,"_")

正则解释:
1、(?<=\$\{) 表示查找 ${ 后面的内容
2、(?=\}) 表示查找 } 前面的内容
3、[^\{\}] 表示不包含 { 或 } 字符串

如有帮助,请采纳,Thanks♪(・ω・)ノ

image.png

┾廆蒐ゝ 2022-09-20 00:07:21

模板字符串
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
花间憩 2022-09-20 00:07:21
let a = /\$\{.+?\}/g;
焚却相思 2022-09-20 00:07:21

你给的代码一般是在类似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) )
同展鸳鸯锦 2022-09-20 00:07:21

var replace = (str, data) => str.replace(/${(.*?)}/g,(match, $1) => data[$1])

这样?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文