この関数を使用すると、文字列の最後の文字が削除されます。改行は
タグで置き換えられます。なにが問題ですか?文字列の最後の文字を削除する正規表現
return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, breakTag);
この関数を使用すると、文字列の最後の文字が削除されます。改行は
タグで置き換えられます。なにが問題ですか?文字列の最後の文字を削除する正規表現
return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, breakTag);
あなたのパターンの最初の部分がないだ任意の1文字に一致し(私は、文字列の末尾にマッチする$
を使用しました)代わりに
return str.replace(/(\r\n|\n|\r)*$/, breakTag)
これを試してみてください>
またはキャリッジリターンまたはラインフィードが返されますが、結果文字列には追加されません。したがって、改行の前に常に最後の文字を取ります。
試してみてください。
return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, "$1" + breakTag);
これは最高の解決策のようです+1 – Christopher
ありがとう! :-) – ebsp
正規表現リテラルを使用して「\」文字をエスケープする必要はありません。実際には、一致するパターンがキャリッジリターンラインフィードのペアである場合は、明らかに間違っています。また、2番目のパラメータを '.replace()'に残しました。 – Pointy
それはエスケープの私の盲目の恐怖のためです...私は編集しました、ありがとう – fcalderan