CodeMirror - 剪切值并附加文本

CodeMirror - cut value and append text

有没有办法按行号截取值? 例如,这是我的编辑器的文本区域:

initial function () {
  a = '1';
  b = '2';
}

我将使用 getRange() 从编辑器中获取初始函数中的值,这是我想要获取的内容:

a = '1';
b = '2';

现在我想将文本附加到每行值:

let val = cm.getRange({line: 0, ch: 0}, {line: cm.lineCount()-1, ch: 0});
val = 'someText' + val.replace(/\s/g, '');

我会得到这样的东西

someTexta='1';b='2';

但我想要的是

someTexta = '1';
someTextb = '2';

codemirror 有没有办法将值按行切割成数组或其他东西?

您可以使用 .split(/\n/) 将您的字符串拆分成单独的行。这将为您提供数组中每一行的一个元素。然后,您可以将每一行 .map() 放入一个字符串中,并在其前面加上 "someText (仅当该行有效时 - 因此 line ? 检查)。然后,您可以使用 .join('\n') 将其转换回字符串。请参见下面的示例:

let val = ` a = '1';
  b = '2';`;
val = val.split(/\n/).map(line => line ? "someText" +line.trim() : line).join('\n');

console.log(val);