如何在NodeJS中实现多段不同格式控制台内容的链式输出
问题原因
你之前的写法不符合console.log的占位符规则:模板字符串中的%s是字符串占位符,每一个占位符需要对应一个后续传入的参数,你只写了1个%s,后续的转义序列和文本会被当成普通字符串直接输出,自然达不到分段格式化的效果。
原生实现方案
你可以选择以下任意一种原生写法实现多段不同格式的字符串拼接输出:
- 方案1:直接拼接带ANSI转义序列的字符串,写法简单直观,不需要使用占位符
// 示例:先输出红底黄字内容,再输出黄底黑字内容 console.log('\x1b[41m\x1b[33m第一段红底黄字内容\x1b[0m \x1b[43m\x1b[30m第二段黄底黑字内容\x1b[0m');
- 方案2:如果你习惯使用占位符写法,保证模板内的占位符数量和传入的内容参数一一对应即可
console.log('%s %s', '\x1b[41m\x1b[33m第一段红底黄字内容\x1b[0m', '\x1b[43m\x1b[30m第二段黄底黑字内容\x1b[0m' );
注意事项
所有格式化输出结束后务必加上\x1b[0m重置终端格式,避免后续控制台输出继承你设置的颜色、背景等样式。
内容的提问来源于stack exchange,提问作者Takeshi Tokugawa YD
相关产品推荐
相关产品推荐

