从文本正文中获取字符串的行号

Tho*_*ggi 3 javascript string substring character line-breaks

假设我有一个包含两行的文件,我indexOf在文件中得到一个子字符串.它返回18找到子字符串的字符.如何找到包含此信息的行?

var file = [
  'var foo = "hello"',
  'console.log(foo)',
].join('\n')

var char = file.indexOf('console') // => 18
var line = lineOfChar(file, char) // => 2
Run Code Online (Sandbox Code Playgroud)

Wou*_*oms 11

实现这一目标的一种可能方法是找到与您一样的字符串:

var index = file.indexOf('console'); // => 18
Run Code Online (Sandbox Code Playgroud)

然后使用此索引创建包含该索引之前的所有内容的子字符串:

var tempString = str.substring(0, index);
Run Code Online (Sandbox Code Playgroud)

最后我们计算出现的次数\n:

var lineNumber = tempString.split('\n').length;
// You should do - 1 if you want your 'first' line to be 0
Run Code Online (Sandbox Code Playgroud)

  • 什么是 str 引用? (3认同)