template
字符串模板替换函数,使用占位符进行文本替换,支持嵌套属性访问。
函数签名
typescript
function template(
template: string,
data: Record<string, any>,
options?: TemplateOptions
): string
interface TemplateOptions {
placeholder?: string | RegExp // 占位符模式,默认 /{{([^}]+)}}/g
defaultValue?: string // 默认值,默认 ''
}参数
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
template | string | 是 | - | 模板字符串,使用 {{key}} 作为占位符 |
data | Record<string, any> | 是 | - | 替换数据对象 |
options.placeholder | string | RegExp | 否 | /{{([^}]+)}}/g | 自定义占位符模式 |
options.defaultValue | string | 否 | '' | 当属性不存在时使用的默认值 |
返回值
| 类型 | 说明 |
|---|---|
string | 替换后的字符串 |
工作原理
- 使用正则表达式匹配模板中的所有占位符(默认为
{{key}}) - 对每个占位符,提取其中的 key 值并去除空格
- 使用
.分割 key,支持嵌套属性访问(如user.name) - 逐级访问数据对象获取对应的值
- 如果值不存在(null 或 undefined),使用
defaultValue替换 - 将获取到的值转换为字符串并替换占位符
- 返回替换后的完整字符串
支持数组的 .length 属性访问,但不支持数组索引访问。