0

我为一些文本操作编写了一个脚本,并想添加一个函数,以便删除以符号“>”开头的输入字符串的第一行。我试图找到一个解决方案几个小时,但我无法让它工作:不知何故第一行没有正确删除。

我的输入文本应该按原样处理,如果它看起来像这样:“ 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

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

谢谢!

4

3 回答 3

2

为什么不只是这个?

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

如果它以 . 开头,这将删除第一行>。它将留下一个空行(换行符不受影响),但由于您稍后会删除所有换行符,所以没关系。

于 2013-01-28T19:56:15.987 回答
0

试试这个

“线=线。拼接(0,1);”

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

于 2013-01-28T20:22:57.507 回答
0

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

错误是我使用

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

它应该在哪里

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

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

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

于 2013-01-28T23:04:49.453 回答