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 ]

目录
相关文章
如何去掉字符串开头,结尾或者中间的空格及其他不想要的字符
去掉文本字符串开头,结尾或者中间不想要的字符,比如空白。
|
4月前
|
开发框架 .NET 程序员
C# 去掉字符串最后一个字符的 4 种方法
在实际业务中,我们经常会遇到在循环中拼接字符串的场景,循环结束之后拼接得到的字符串的最后一个字符往往需要去掉,看看 C# 提供了哪4种方法可以高效去掉字符串的最后一个字符
387 0
|
2月前
删除字符串中的除字母外的字符
【10月更文挑战第31天】删除字符串中的除字母外的字符。
40 4
|
8月前
如何去掉字符串中文括号及其内部的内容三种方式
如何去掉字符串中文括号及其内部的内容三种方式
287 0
excel删除空格之后的字符
excel删除空格之后的字符
|
C语言 C++
从字符串中删除指定字符
从字符串中删除指定字符
141 2
|
数据采集 移动开发
一日一技:在字符串中批量替换单个字符
一日一技:在字符串中批量替换单个字符
148 0
去掉多余的空格---输入一个字符串,字符串中可能包含多个连续的空格,请将多余的空格去掉,只留下一个空格。输入格式
输入一个字符串,字符串中可能包含多个连续的空格,请将多余的空格去掉,只留下一个空格。 输入格式 共一行,包含一个字符串。 输出格式 输出去掉多余空格后的字符串,占一行。 数据范围 输入字符串的长度不超过 200200。 保证输入字符串的开头和结尾没有空格。
331 0
用#替换字符
给定一个由大小写字母构成的字符串。 把该字符串中特定的字符全部用字符 # 替换。
124 0
|
JavaScript PHP 网络架构
***解决PHP输出多余的空格或换行
用CI框架写APP后台接口的时候,返回的JSON前面有多余的2哥换行,首先排查的是BOM,结果问题依旧 再就是排查 标签外没有多余的回车、换行,结果发现确实有多余的换行,去掉之后,问题消失。 总结:建议去掉PHP结束标签,这样会避免很多莫名其妙的问题     写代码的童鞋应该知道,经常会在...
1512 0

热门文章

最新文章