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