原
ts实现动态拼接字符串,实现类似 C# 的 string.Format的格式化字符串。ts,js动态给拼接字符串提供参数

模板是这样的:”于${0}通过${1}课程体系《${2}》课程授课”
对于这种格式的模板字符串,可以使用一个简单的替换函数来处理,而不需要复杂的正则表达式转义。下面是一个处理这种模板的示例函数:
function formatString(template: string, ...values: any[]): string {
return template.replace(/\$\{(\d+)\}/g, (match, indexStr) => {
let index = parseInt(indexStr, 10);
return values[index] !== undefined ? values[index] : '';
});
}
let template = "于${0}通过${1}课程体系《${2}》课程授课";
let dataTime = '2024 年 12月 06 日';
let courseVersion = '<OEAC 14.0>';
let courseName = '直播运营与策划(V14.0.0)';
let descCn = formatString(template, dataTime, courseVersion, courseName);
console.log(descCn);
// 输出: 于2024 年 12月 06 日通过<OEAC 14.0>课程体系《直播运营与策划(V14.0.0)》课程授课
在这个函数中,我们使用了正则表达式 /\$\{(\d+)\}/g
来匹配所有的 ${n}
形式的占位符。这个正则表达式中的 \$
匹配美元符号 $
,\{
和 \}
分别匹配左大括号 {
和右大括号 }
,而 (\d+)
是一个捕获组,用于匹配并捕获一个或多个数字。
在替换函数中,我们通过 match
参数获取到整个匹配的字符串(即 ${n}
),然后通过 indexStr
参数获取到捕获组中的数字字符串。我们将这个数字字符串转换为整数索引,并从 values
数组中获取对应的值进行替换。如果 values
数组中不存在对应的值,则替换为一个空字符串 ''
。
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)
评价
排名
8
文章
221
粉丝
7
评论
7
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术