Javascript:如果字符串以某些字符开头,则删除第一个文本行

时间:2013-01-28 19:53:55

标签: javascript

我为一些文本操作编写了一个脚本,并希望添加一个函数,这样如果以符号'>'开头,我的输入字符串的第一行就会被删除。我现在试着找几个小时的解决方案,但我无法让它工作:不知怎的,第一行没有被正确删除。

我的输入文字应该按原样处理,如果它看起来像这样: “HABHHIKKLLMMNMNIL” 如果它看起来像这样,应删除第一行: “

>some text
HABHHIKKLLMMNMNIL

我目前的解决方案如下:

// remove first line if starts with '>'


if (sequence_str.substring(0) === '>'){
    // break the textblock into an array of lines
    var lines = sequence_str.split('\n');
    // remove one line, starting at the first position
    lines.splice(0,1);
    // join the array back into a single string
    var sequence_str = lines.join('\n');
}

sequence_str = sequence_str.replace(/(\r\n|\n|\r)/gm,""); //remove linebreaks

我很感激任何想法,我希望有些人可以帮我找出问题所在。

谢谢!

3 个答案:

答案 0 :(得分:2)

为什么不呢?

sequence_str = sequence_str.replace(/^>.*/,'');

如果第一行以>开头,则会删除第一行。它将留下一个空行(换行符不受影响),但由于你后来剥离了所有换行符,所以没关系。

答案 1 :(得分:0)

试试这个

" lines = lines.splice(0,1);"

而不是" lines.splice(0,1);"

答案 2 :(得分:0)

非常感谢,我非常喜欢你建议的短代码。

错误是我使用

if (sequence_str.substring(0) === '>')

应该在哪里

if (sequence_str.substring(0,1) === '>')

我是一名JavaScript初学者,来自Python角落,请原谅我的愚蠢错误

编辑: 如果有人有兴趣了解最终产品的样子: http://bluewoodtree.zxq.net/crop_and_cleave.html

相关问题