文字列のスペースを削除する方法例えば:
入力:'/var/www/site/Brand new document.docx'
出力:'/var/www/site/Brandnewdocument.docx'
ありがとう
この?
str = str.replace(/\s/g, '');
例
var str = '/var/www/site/Brand new document.docx';
document.write( str.replace(/\s/g, '') );
更新: /に基づく この質問 、これ:
str = str.replace(/\s+/g, '');
より良い解決策です。同じ結果が得られますが、速くなります。
正規表現
\s
は "whitespace"の正規表現です。そしてg
は "global"フラグです。これはmatch ALL \s
(空白文字)を意味します。
+
の素晴らしい説明は ここ にあります。
ちなみに、一重引用符の間の内容を必要なものに置き換えることができるので、空白文字を他の文字列に置き換えることができます。
var a = b = " /var/www/site/Brand new document.docx ";
console.log( a.split(' ').join('') );
console.log( b.replace( /\s/g, '') );
これを行う2つの方法!
@rsplakの答えに従ってください:実際には、分割/結合方法を使うほうがregexpを使うより速いです。パフォーマンスを見る テストケース
そう
var result = text.split(' ').join('')
より速く動作します
var result = text.replace(/\s+/g, '')
小さなテキストではこれは重要ではありませんが、時間が重要な場合、たとえばテキストアナライザでは、特にユーザと対話するときは、それが重要です。
一方、\s+
は、さまざまなスペース文字を処理します。 \n
と\t
の間では、\u00a0
文字と一致します。
を使用してテキストを取得する場合は、textDomNode.nodeValue
が有効になっています。
だから私はここでの結論は次のようにすることができると思います:あなたが スペース ' '
を置き換える必要があるだけなら、split/joinを使ってください。 シンボルクラス - の異なるシンボルが存在する可能性がある場合はreplace(/\s+/g, '')
を使用してください。
var input = '/var/www/site/Brand new document.docx';
//remove space
input = input.replace(/\s/g, '');
//make string lower
input = input.toLowerCase();
alert(input);
最短および最速 :str.replace(/ /g, '');
基準:
ここに私の結果 - (2018.07.13)Mac 67s上のSierra 10.13.3(Chrome 67.0.3396(64ビット)、Safari 11.0.3(13604.5.6)、Firefox 59.0.2(64ビット))
OP質問の例に似た短い文字列
すべてのブラウザで最速の解決策は/ /g
(regexp1a) - Chrome 17.7M(操作/秒)、Safari 10.1M、Firefox 8.8Mです。すべてのブラウザで最も遅いのはsplit-join
ソリューションでした。 \s
に変更するか、+
またはi
を追加してregexpを実行すると処理が遅くなります。
約300万文字までの文字列の結果は次のとおりです。
あなたのマシン上で実行することができます: https://jsperf.com/remove-string-spaces/1
var output = '/var/www/site/Brand new document.docx'.replace(/ /g, "");
or
var output = '/var/www/site/Brand new document.docx'.replace(/ /gi,"");
注:スペースを削除するために 'g'または 'gi'を使用しても、どちらも同じように動作します。
Replace関数で 'g'を使うと、完全一致をチェックします。しかし、 'gi'を使用した場合、大文字と小文字の区別は無視されます。
参考のために ここをクリック 。