如何在javascript中的字符串中的每一行的开头添加行号

时间:2018-04-08 06:07:25

标签: javascript string

我有一个像

这样的字符串
Hi,
My
Name
is
Mike

我怎样才能把它变成:

1.Hi,
2.My
3.Name
4.is
5.Mike

2 个答案:

答案 0 :(得分:4)

var numbered = `Hi,
My
Name
is
Mike`.split('\n').map((line, index) => `${index + 1}. ${line}`).join('\n')

console.log(numbered)

打破解决方案;

  1. 我们取原始字符串,然后用换行符分割,这样我们得到一个字符串数组(每行一个)
  2. Map是一个函数,它允许我们将变换函数应用于数组的每个项目,并返回一个带有新项目的新项目。
  3. Map传递当前数组项加上基于零的索引。我们将索引与当前项连接起来,以便得到我们期望的字符串
  4. 由于我们仍然有一个数组(但我们需要一个字符串),我们使用join方法。 Join方法使用给定的字符连接数组中的所有项目,在这种情况下,我们再次传递换行符,因此每个项目都有一行。

答案 1 :(得分:0)

您可以将String.replace()与符合行'的RegExp一起使用开始(regex101 example),并用行号替换每个。

注意: Thomas in his comment建议的正则表达式。



const str = `Hi,
My
Name
is
Mike`;

let i = 1;
const numbered = str.replace(/^/gm, () => `${i++}.`);

console.log(numbered)