回答:
この?
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
「空白」の正規表現でg
あり、「グローバル」フラグ\s
です。これは、すべてに一致することを意味します(空白)。
以下のための偉大な説明を+
見つけることができるここに。
補足として、一重引用符の間のコンテンツを必要なものに置き換えることができるため、空白を他の文字列に置き換えることができます。
.replace(/\s+/g, '')
より頻繁に表示されます。それと私の答えには違いがありますか?
.replace(' ','')
うまくいく印象を受けました。とても有難い!
+
、誰もがあまりにも彼/彼女を信用したい場合のみ、60票を持っているstackoverflow.com/a/5964427/4258817
.replace('/\s+/g', '')
、そのリテラル文字列を見つけようとします。これは以前に私をつまずかせました...
var a = b = " /var/www/site/Brand new document.docx ";
console.log( a.split(' ').join('') );
console.log( b.replace( /\s/g, '') );
これを行うには2つの方法があります。
最短かつ最速:str.replace(/ /g, '');
基準:
ここに私の結果-(2018.07.13)Chrome 67.0.3396(64ビット)、Safari 11.0.3(13604.5.6)、Firefox 59.0.2(64ビット)上のMacOs High Sierra 10.13.3):
OP質問の例に似た短い文字列
すべてのブラウザでの最速のソリューションは/ /g
(regexp1a)-Chrome 17.7M(操作/秒)、Safari 10.1M、Firefox 8.8Mです。すべてのブラウザで最も遅いのがsplit-join
解決策でした。変更する
\s
か、追加し+
たりi
、処理が遅くなるダウン正規表現に。
文字列の場合、約300万の文字の結果は次のとおりです。
あなたはあなたのマシンでそれを実行することができます:https://jsperf.com/remove-string-spaces/1
@rsplakの回答に従ってください。実際には、split / joinを使用する方がregexpを使用するよりも高速です。パフォーマンステストケースを見る
そう
var result = text.split(' ').join('')
よりも速く動作します
var result = text.replace(/\s+/g, '')
小さなテキストではこれは重要ではありませんが、テキストアナライザなどで時間が重要な場合、特にユーザーとのやり取りでは重要です。
一方、\s+
さまざまなスペース文字を処理します。中\n
と\t
、それはまた、一致した\u00a0
文字を、そしてそれは何である
使用してテキストを取得するとき、中になっていますtextDomNode.nodeValue
。
だからここでの結論は次のようにできると思います:スペース を置き換えるだけでよい場合は' '
、split / joinを使用してください。シンボルクラスの異なるシンボルが存在する可能性がある場合-使用replace(/\s+/g, '')
way faster
。テストを実行し、それがだだけで 2.19パーセント速く、私のFirefox 61に
var input = '/var/www/site/Brand new document.docx';
//remove space
input = input.replace(/\s/g, '');
//make string lower
input = input.toLowerCase();
alert(input);
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」を使用すると、大文字と小文字の区別が無視されます。
参考のためにここをクリックしてください。
正規表現+ Replace()
正規表現は遅くなる可能性がありますが、多くの場合、開発者は一度に少数の文字列を操作するだけなので、速度を考慮する必要はありません。/ /は/ \ s /より高速ですが、「\ s」を使用すると、別の開発者に何が起こっているかをより明確に説明できます。
let string = '/var/www/site/Brand new document.docx';
let path = string.replace(/\s/g, '');
// path => '/var/www/site/Brandnewdocument.docx'
Split()+ Join()
Split + Joinを使用すると、文字列をさらに連鎖して操作できます。
let string = '/var/www/site/Brand new document.docx';
let path => string.split('').map(char => /(\s|\.)/.test(char) ? '/' : char).join('');
// "/var/www/site/Brand/new/document/docx";
" ahm ed ".split('').filter(e => e.trim().length).join('')