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

これを試してみてください

"lines = lines.splice(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 に答える