Javascript 格式化模板字符串以删除空白,但支持缩进

Javascript 格式化模板字符串以删除空白,但支持缩进,javascript,Javascript,假设我有以下模板字符串: const str1 = ` const x = 5; ` 如果我在DOM中呈现它,它将在字符串开始之前考虑空格,并用空格呈现它。我可以使用str1.trim()解决这个问题,但是,假设我们有另一个字符串: const str2 = ` const x = 1; const y = 2; const z = 3; ` 我想删除每个字符串行之前的空白,但保留缩进。预期结果如下所示: cons

假设我有以下模板字符串:

const str1 = ` 
        const x = 5;
`
如果我在DOM中呈现它,它将在字符串开始之前考虑空格,并用空格呈现它。我可以使用str1.trim()解决这个问题,但是,假设我们有另一个字符串:

const str2 = `
        const x = 1;
          const y = 2;
            const z = 3;
`
我想删除每个字符串行之前的空白,但保留缩进。预期结果如下所示:

const x = 1;
  const y = 2;
    const z = 3;

有没有一种方法可以通过正则表达式或js实现这一点?

计算出第一个换行符和第一个实字符之间的空格字符数,然后从每行的开头删除空格字符数并进行修剪:

const str2=`
常数x=1;
常数y=2;
常数z=3;
`;
常量numSpaces=str2.match(/\n+/)[0]。长度;
const result=str2
.replace(新的RegExp(`\\n{${numSpaces}}}`、'g')、'\n')
.trim();

控制台日志(结果)解决此问题的方法太多了。答案将变成一个人们喜欢的民意测验。最好的办法是自己做一些关于这个话题的研究,找到两三个,分析它们,确定它们是否对你有用,并尝试一下。当你有关于你试图做的事情的具体问题时,来找我们。