Javascript 如何删除文本区域每行中的第一个字符

Javascript 如何删除文本区域每行中的第一个字符,javascript,html,Javascript,Html,输出应显示为肺、肾、骨骼>J169>U和E,肌酐:否,而不是>肺、肾、骨骼>J169>U和E,肌酐:否 如何使用javascript实现这一点?i、 e>是每行中需要删除的第一个字符 我使用了字符串替换和字符串字符函数来删除每行中的第一个字符,但我没有这样做。 如果我在编码中的某个地方出错,请纠正我? 下面的代码片段有助于更恰当地理解问题 提前感谢 function change(){ var lines = $('#te1').val().split("\n");

输出应显示为肺、肾、骨骼>J169>U和E,肌酐:否,而不是>肺、肾、骨骼>J169>U和E,肌酐:否 如何使用javascript实现这一点?i、 e>是每行中需要删除的第一个字符

我使用了字符串替换和字符串字符函数来删除每行中的第一个字符,但我没有这样做。 如果我在编码中的某个地方出错,请纠正我? 下面的代码片段有助于更恰当地理解问题

提前感谢

function change(){
   var lines = $('#te1').val().split("\n");
                      for(var i = 0;i < lines.length;i++)
                      {
                      var res1=lines[i].replace(lines[i].charAt(0),"");
                         $("#te1").val(res1)
                      }  
   }


<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<textarea id="te1" cols="100" rows="5">
>LUNG,KIDNEY,SKELETON>J169>U and E, CREATININE:no
>LUNG,KIDNEY,SKELETON>G121:yes
</textarea>

<button id = "b1" onclick="change()">Remove</button>
您可以与和结合使用:

解释如下:

$('#te1').val(          //Assign to your textarea what's coming next
    $('#te1').val()     //Get what's inside your textarea
    .split("\n")        //Split it to every newline
    .map(str =>         //Go through your array
        str.length && str.charAt(0) == '>' ?    //If the String isn't empty and it has a > at its beginning
        str.substr(1)   //Removes the first char
        : str           // Else keep the String as is
    )
    .join('\n')         //Rejoin your array with newlines
);
演示:

功能改变{ $'te1'.val$'te1'.val.split\n.mapstr=>str.length&&str.charAt0=='>'?str.substr1:str.join'\n'; } >肺、肾、骨骼>J169>U和E,肌酐:无 >肺、肾、骨骼>G121:是 使用String.prototype.substr删除。您可以删除每行的第一个字符,然后将其合并回来

功能改变{ const$tel=$te1; 常量行=$tel.val.split\n; $tel.vallines.mapline=>line.substr1.join'\n'; } >肺、肾、骨骼>J169>U和E,肌酐:无 >肺、肾、骨骼>G121:是 删除使用map、substring和join

演示

功能改变{ 变量行=$'te1'.val.split\n; 控制台。对数线; $te1.vallines.map s=>s.substring1.join\n; } >肺、肾、骨骼>J169>U和E,肌酐:无 >肺、肾、骨骼>G121:是
删除因为大多数答案都基于循环,下面是一种使用正则表达式的方法:

想法: 创建一个正则表达式,将行捕获为两个组: 第1组:第一个字符 组2:字符串的其余部分。 现在用Group2替换字符串。 功能改变{ 变量行=$'te1'.val; var regex=/[^\n][^\n]+\n?/g; $'te1'.vallines.replaceregex,$2; } >肺、肾、骨骼>J169>U和E,肌酐:无 >肺、肾、骨骼>G121:是 Remove您可以使用^匹配RegExp中的行的开头

功能改变{ $'te1'.valindex,value=>value.replace/^[^\n]/gm; } >肺、肾、骨骼>J169>U和E,肌酐:无 >肺、肾、骨骼>G121:是
除去。。。{str+=行[i]。子字符串1}$..VALTR;它的工作,但它也删除了其他字母点击删除按钮,这不应该发生。在我的例子中,它首先应该只删除>而不删除其他字符。单击“删除”按钮时,其他字符应保持不变。你能帮帮我吗?提前谢谢@SwaroopGanesh I添加了一个条件。第一次单击时,肺、肾、骨骼>J169>U和E,肌酐:无肺、肾、骨骼>G121:第二次为是,UNG、肾、骨骼>J169>U和E,肌酐:无UNG、肾、骨骼>G121:是,即第三次单击时,L被删除,NG、肾、骨骼>J169>U和E,肌酐:无NG、肾,骨架>G121:是,即L和U已移除。同样,它不断地删除每个不应该发生的字母。它应该只删除>其他内容,而不考虑单击。@SwaroopGanesh这已经是它对添加的条件所做的。刷新您的页面并试用。谢谢您,先生。糟糕的是,我实际上没有刷新页面。
$('#te1').val(          //Assign to your textarea what's coming next
    $('#te1').val()     //Get what's inside your textarea
    .split("\n")        //Split it to every newline
    .map(str =>         //Go through your array
        str.length && str.charAt(0) == '>' ?    //If the String isn't empty and it has a > at its beginning
        str.substr(1)   //Removes the first char
        : str           // Else keep the String as is
    )
    .join('\n')         //Rejoin your array with newlines
);
function change() {
  var lines = $('#te1').val().split("\n");
  $("#te1").val(lines.map ( s => s.substring(1) ).join("\n"));
}