如何删除textarea每行中的第一个字符

时间:2018-03-09 10:54:42

标签: javascript html

输出应显示为LUNGKIDNEYSKELETON>J169>UECREATININE:no而不是>LUNG,KIDNEY,SKELETON>J169>U and E,{{1} } 如何使用javascript实现这一目标?我,e">"是需要删除每行中的第一个字符。

我已经使用了字符串替换和字符串charAt函数来删除每行中的第一个charahter,但是为我做了锻炼。 如果我在编码的某个地方出错了,请纠正我? 以下代码段有助于更恰当地理解问题!

提前谢谢

CREATININE:no

5 个答案:

答案 0 :(得分:1)

使用mapsubstringjoin

function change() {
  var lines = $('#te1').val().split("\n");
  $("#te1").val(lines.map ( s => s.substring(1) ).join("\n"));
}

<强>演示

&#13;
&#13;
function change() {
  var lines = $('#te1').val().split("\n");
  console.log(lines);
  $("#te1").val(lines.map ( s => s.substring(1) ).join("\n"));
}
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以将Array#mapString#substrArray#join结合使用:

$('#te1').val($('#te1').val().split("\n").map(str => str.length && str.charAt(0) == '>' ? str.substr(1) : str).join('\n'));

以下是解释:

$('#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() {
  $('#te1').val($('#te1').val().split("\n").map(str => str.length && str.charAt(0) == '>' ? str.substr(1) : str).join('\n'));
}
<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>

答案 2 :(得分:0)

使用String.prototype.substr,您可以删除每行的第一个字符,然后将其合并。

function change() {
  const $tel = $("#te1");
  const lines = $tel.val().split("\n");
  $tel.val(lines.map((line) => line.substr(1)).join('\n'));
}
<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>

答案 3 :(得分:0)

由于大多数答案都基于循环,因此以下是使用正则表达式的方法:

思想:

  • 创建一个将该行捕获为两组的正则表达式:
    • 第1组:第一个字符
    • Group2:其余的字符串。
  • 现在用let solution = { _id: 'aa0', paymentFrequency: 'MONTHLY', ....}; let spy = sandbox.stub(controller, 'open').withArgs(solution); 替换字符串。

Group2
function change() {
  var lines = $('#te1').val();
  var regex = /([^\n])([^\n]+\n?)/g;
  $('#te1').val(lines.replace(regex, "$2"));
}

答案 4 :(得分:0)

您可以使用multiline flag使^与RegExp中一行的开头匹配。

function change(){
   $('#te1').val((index, value) => value.replace(/^[^\n]/gm, ""));
}
<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>