0

タブ区切りリストの値を取得しようとしています:

1   11  11111111
2   22  2222
3   33  33333333

最後の行に末尾\nがあり、スクリプトの他の領域の行をループするときにエラーが発生する可能性があることを除いて、それは非常に簡単です。この末尾\nの があれば、それを取り除きたいと思います。私はこれを行うことができます:

var res = myStr.substr(-1);
if (/\n/.test(res)){
    return myStr.substr(0, myStr.length - 1)
}

しかしもちろん、これは複数の末尾の文字列の切り捨てに失敗します\n。最後の文字が\n.

/^\s*[\r\n]/gm.test(myStr)

\n何らかの理由で、文字列の末尾に複数ある場合にのみ true を返し、1 つだけある場合に false を返します\n

jqueryの方法を使おうと思ったの$.trim()ですが、タブだけだと最終行が切り捨てられてしまいます。空であっても、その行の存在を考慮したいので、これはできません。

ループがまったくサポートされないアイデアであるというわけではありませんが、これを正規表現で解決する方法はありますか?

4

2 に答える 2

2

私はあなたが探していると思います:

var result = yourString.replace(/\n+$/,"");

正規表現の基本では、

  • +「前の文字の1回以上の出現」の量指定子です
  • $「文字列の終了位置」アンカーです。
于 2013-10-30T00:53:36.093 に答える
0

解除したいならやってみる

myTest = $.trim(myText)

注:空のスペースも削除されます

そうでなければテストしてみてください/\n+$/.test(myText)

于 2013-10-30T00:53:56.397 に答える