2017-01-05 18 views
2

JavaScriptの言語で文字列の内側から空白を削除する必要があります。左右にはこのスペースがあります。私は解決策を見つけることができません...JS:文字列の内側からのみ空白を削除するには

多分いくつかのネイティブ関数ですか?または、何とか正規表現がありますか?

私が唯一持っている:

str = str.replace(/\s+/g, ''); 

をしかし、それはあまりにも側面から空白を削除します。

は私がしたい:

var str = "  s dasd   asd sad sa d  "; 
str = str.replace(/\s+/g, ''); 
// output 
"  sdasdasdsadsad  "; 
+1

は、あなたが何をしたいの例を置くことはできますか? –

+0

私は小さな例を追加しました – Vital

+0

' 'は空白ではありません...あなたもそれを空白として考えると、やや曖昧になります。 – deceze

答えて

4

あなたが一致し、他のすべての空白をリード/末尾の空白をキャプチャし、後方参照と結果にリストア、および削除することができます。

var str = " some text "; 
 
str = str.replace(/(^\s+|\s+$)|\s+/g, '$1'); 
 
console.log("'",str,"'");

パターンはの詳細:

  • (^\s+|\s+$) - グループ1は、文字列の先頭(^\s+)で、または2)の終了時に)一つ以上の空白1を捕捉します文字列(\s+$
  • | - または
  • \s+ - 文字列内のどこにでも空白が1つあります。

$1は、結果の文字列に挿入されたキャプチャグループの内容の逆参照です。あまりに をサポートする

、交代、(?:\s| )使用:

console.log("  s dasd   asd sad sa d  ".replace(/(^(?:\s| )+|(?:\s| )+$)|(?:\s| )+/g, '$1'));

関連する問題