2012-03-24 16 views

答えて

43

次のようになります。あなたのことを

words = words.replace(/\n/g, " "); 

注意を置換するために正規表現にgフラグが必要すべての改行は最初のものではなく、スペースを持っています。

デモの作業

http://jsfiddle.net/jfriend00/VrAw2/

+1

なぜdownvoteですか?説明を提供しない下降者は、私たちの回答を改善する助けとはならない(したがってコミュニティ全体に利益をもたらす)。 – jfriend00

0

いくつかの簡単な解決策は、あなたが.replace()機能を使用することができます

words.replace(/(\n)/g," "); 
+0

あなたが実際にこれを試していましたか?それは私にとってはうまくいかないようです:http://jsfiddle.net/jfriend00/Zn4WE/1 – jfriend00

+0

はいそれは今働いています –

+1

'/(\ n)/'の括弧はなぜですか?彼らは必要ではありません。 – jfriend00

2

コード:を(FIXED)

var new_words = words.replace(/\n/g," "); 
+0

これは実際に試しましたか?それは私にとってはうまくいかないようです。http://jsfiddle.net/jfriend00/Zn4WE/1/ – jfriend00

+0

まだ正しく動作するには 'g'フラグが必要です。 –

+0

@ jfriend00 @Madmartigan TRUE。時には明白なものが見落とされています...( '/ g'フラグがなければ最初の出現のみが置き換えられます) –

18

場合複数改行(改行記号)があると\rまたは\n両方が存在することができれば、とあなたはのすべての後続の改行を置き換えますと1つのスペース、使用

var new_words = words.replace(/[\r\n]+/g," "); 

regex demo

/[\r\n]+/g手段を参照してください:

  • [\r\n] - 1回以上(連続した改行が一致した - キャリッジリターンまたは改行文字...
  • +と一致)
  • /g - 提供された文字列のすべての出現箇所を見つけて置き換えます。

var words = "car\r\n\r\nhouse\nhome\rcomputer\ngo\n\nwent"; 
 
document.body.innerHTML = "<pre>OLD:\n" + words + "</pre>"; 
 
var new_words = words.replace(/[\r\n]+/g," "); 
 
document.body.innerHTML += "<pre>NEW:\n" + new_words + "</pre>";

関連する問題