如何将JavaScript模板字符串转换为含参数名的普通字符串?
实现模板字符串参数名提取的方法
你可以通过正则表达式的全局替换功能来实现这个需求,核心是匹配${参数名}的结构,然后将其替换为捕获到的参数名本身。
JavaScript 实现示例
针对你给出的模板字符串,直接用正则替换即可:
const template = 'https://example.api/${id2}/pictures/${id}'; const plainTemplate = template.replace(/\$\{(\w+)\}/g, '$1'); console.log(plainTemplate); // 输出: "https://example.api/id2/pictures/id"
适配更复杂的参数名
如果你的参数名包含下划线、字母数字之外的字符(比如连字符、点号),可以调整正则表达式,匹配}之前的所有字符:
const complexTemplate = 'https://example.api/${user-name}/pictures/${user.id}'; const plainComplexTemplate = complexTemplate.replace(/\$\{([^}]+)\}/g, '$1'); console.log(plainComplexTemplate); // 输出: "https://example.api/user-name/pictures/user.id"
正则说明
\$\{:匹配模板字符串中的${(需要转义特殊字符$和{)(\w+)或([^}]+):捕获参数名部分,前者仅匹配字母数字下划线,后者匹配任意非}的字符\}:匹配闭合的}g:全局修饰符,确保替换所有符合条件的匹配项
内容的提问来源于stack exchange,提问作者Ilya G
相关产品推荐
相关产品推荐

