ES6字符串模板多行清除行头空格制表符

简介: 最近在撸项目工程化的时侯,需要输出一些文案提示,对于多行文本我肯定优先考虑用 ES6字符串模板来实现,直接使用的效果并不是很符合想要的。因为字符串模板会默认保留你换行的格式,包括缩进这些。


ES6字符串模板多行清除行头空格制表符


前言


最近在撸项目工程化的时侯,需要输出一些文案提示,

对于多行文本我肯定优先考虑用 ES6字符串模板来实现,直接使用的效果并不是很符合想要的。


因为字符串模板会默认保留你换行的格式,包括缩进这些。

效果图


ES6 String Template(raw)



let outMsg = `
${override ? "正在" : "文件不存在,开始"}生成文件${fileName}..
文件路径: ${colors.yellow(filePath)}
继续执行构建-->`;
console.log(outMsg);


正则改造下



let outMsg = `
${override ? "正在" : "文件不存在,开始"}生成文件${fileName}..
文件路径: ${colors.yellow(filePath)}
继续执行构建-->`.replace(/^\s+/gm, "");
console.log(colors.green(outMsg));


解决姿势


传统的字符串拼接


这种虽然可以对齐的,但是写起来不舒服, 所以我选择了正则来处理


let a='fads\n'
a+='rewr\n';


正则方法


/**
 *
 * @param {string} strTemplate - ES6字符串模板多行
 * @param {boolean} onlyMatchSpace - 只匹配行前空格(中文空格和英文空格)
 * @returns {string} - 符合格式的字符串数据
 * @description - 返回去除行头空格的字符串
 */
function removeMultipleStrLeadingSpace (strTemplate, onlyMatchSpace = true) {
  if (!strTemplate) {
    return '';
  }
  if (onlyMatchSpace) {
    // eslint-disable-next-line no-irregular-whitespace
    return strTemplate.replace(/^[  ]+/gm, '');
  }
  return strTemplate.replace(/^\s+/gm, '');
}
module.exports = removeMultipleStrLeadingSpace;

正则匹配范围测试



改进方案


若是要考虑中文空格以及保留换行符,不能 \s 一撸到底,具体看函数

\s :等同于 [\r\n\t\f\v ]

目录
打赏
0
0
0
0
3
分享
相关文章
|
9月前
|
JS中的splice的三种用法(删除,替换,插入)
JS中的splice的三种用法(删除,替换,插入)
766 4
Pycharm中VCS找不到check out from Version Control选项原因及绑定用户github
Pycharm中VCS找不到check out from Version Control选项原因及绑定用户github
1017 0
Pycharm中VCS找不到check out from Version Control选项原因及绑定用户github
Pandas read_csv 参数详解
Pandas的`read_csv`函数用于从CSV文件中加载数据,转换为DataFrame。本文详述了其常用参数,如`filepath_or_buffer`(接受路径、URL或文件对象)、`sep`/`delimiter`(字段分隔符,默认为逗号)、`header`(列名行号,默认0)、`names`(自定义列名)、`index_col`(设定索引列)、`usecols`(选择读取的列)、`skiprows`/`nrows`/`skipfooter`(跳过或只读指定行数)和`parse_dates`(解析日期列)。理解这些参数有助于高效处理CSV数据。
未来前端发展趋势与挑战
【2月更文挑战第4天】 随着互联网技术的快速发展,前端开发作为用户与网站交互的重要环节,其发展也日益受到重视。本文探讨了未来前端发展的趋势与挑战,从人工智能、跨平台开发、AR/VR技术等方面展望了前端技术的发展方向,同时也指出了前端开发者在面对这些变化时需要面对的挑战。
Linux【脚本 04】Shell脚本传递参数的4种方式(位置参数、特殊变量、环境变量和命名参数)实例说明
Linux【脚本 04】Shell脚本传递参数的4种方式(位置参数、特殊变量、环境变量和命名参数)实例说明
1236 0
虚拟表格和懒加载有什么区别
虚拟表格和懒加载有什么区别
136 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问