UNPKG

vtils

Version:

一个面向业务的 JavaScript/TypeScript 实用程序库。

30 lines 936 B
/** * 每一行紧跟前导空白的插入值为多行时,保持缩进。 * * @public * @param literals 字面值 * @param interpolations 插入值 * @returns 返回处理后的结果 * @example * ```typescript * indent` ${'a\nb'}` // => ' a\n b' * ``` */ export function indent(literals) { var result = ''; for (var i = 0; i < (arguments.length <= 1 ? 0 : arguments.length - 1); i++) { var literal = literals[i]; var interpolation = i + 1 < 1 || arguments.length <= i + 1 ? undefined : arguments[i + 1]; var match = literal.match(/(?:^|[\r\n]+)([^\S\r\n]*)$/); if (match && match[1]) { interpolation = String(interpolation).replace( // fix: 后行断言部分浏览器暂不支持 // /(?<=[\r\n]+)(?=[^\r\n])/g, /([\r\n]+)(?=[^\r\n])/g, "$1" + match[1]); } result += literal; result += interpolation; } result += literals[literals.length - 1]; return result; }