Node.js字符串处理:如何修改代码实现文件序号放在后缀名之前
实现方案
你当前的代码是直接把序号拼接在完整文件名末尾,所以后缀会出现在序号前,只需拆分文件名主体和后缀,将序号插入两者中间即可。
调整后代码
// 查找最后一个.的位置,拆分文件名主体和后缀 const dotPosition = params.strdocumentname.lastIndexOf('.'); const nameMain = params.strdocumentname.slice(0, dotPosition); const suffix = params.strdocumentname.slice(dotPosition); // 按预期格式拼接新文件名 let NewName = `${nameMain} (${results.rows[0].arrayfilecount})${suffix}`; strdocumentname = params.strdocumentname = NewName;
代码说明
- 用
lastIndexOf('.')定位最后一个小数点的位置,兼容文件名本身包含多个小数点的场景(比如report.v1.doc也能正确拆分) - 拼接时在序号前新增了空格,符合你需要的格式
兼容无后缀文件名的优化版本
如果存在无后缀的文件,可以加判断避免报错:
const dotPosition = params.strdocumentname.lastIndexOf('.'); let NewName; if (dotPosition === -1) { // 无后缀文件直接把序号拼在末尾 NewName = `${params.strdocumentname} (${results.rows[0].arrayfilecount})`; } else { const nameMain = params.strdocumentname.slice(0, dotPosition); const suffix = params.strdocumentname.slice(dotPosition); NewName = `${nameMain} (${results.rows[0].arrayfilecount})${suffix}`; } strdocumentname = params.strdocumentname = NewName;
内容的提问来源于stack exchange,提问作者May Yie
相关产品推荐
相关产品推荐

