将字符串的开头从 2 个空格转换为 4 个空格

Convert start of String from 2 spaces to 4 spaces

如果某人有一个制表符大小为 2 个空格的文本区域,例如:

<textarea id="source">
function add(a,b,c) {
  return a+b+c;
}
</textarea>

结果应该是:

<textarea id="source">
function add(a,b,c) {
    return a+b+c;
}
</textarea>

有没有办法将它从 2 个空格转换为 4 个空格?

我正在尝试这个:

function convert(id,start,end) {
  var myvalue = document.getElementById(id).value;
  var myregex = new RegExp(" "*start,"g");
  myvalue = myvalue.replace(myregex, " "*end);
}
<textarea id="source">
function add(a,b,c) {
  return a+b+c;
}
</textarea>
<button onclick="convert('source',2,4)">Convert Tab Size 2 => 4</button>

但是制表符大小没有按预期转换。为什么?

您不能在 javascript 中乘以字符串。 例如,您可以使用 .repeat() 。 而且您没有将值放回元素中。仅更改 myvalue 不起作用,您必须将元素的值设置为 myvalue

function convert(id,start,end) {
  var myvalue = document.getElementById(id).value;
  var myregex = new RegExp(" ".repeat(start),"g");
  myvalue = myvalue.replace(myregex, "  ".repeat(end));
  document.getElementById(id).value = myvalue

}
<textarea id="source">
function add(a,b,c) {
  return a+b+c;
}
</textarea>
<button onclick="convert('source',2,4)">Convert Tab Size 2 => 4</button>