我为一些文本操作编写了一个脚本,并希望添加一个函数,这样如果以符号'>'开头,我的输入字符串的第一行就会被删除。我现在试着找几个小时的解决方案,但我无法让它工作:不知怎的,第一行没有被正确删除。
我的输入文字应该按原样处理,如果它看起来像这样:
“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
我很感激任何想法,我希望有些人可以帮我找出问题所在。
谢谢!
答案 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