余分な空白を含む文字列がありますが、空白が複数ある場合は必ず1つだけにしてください。
誰でも?私はグーグルを検索してみましたが、何もうまくいきませんでした。
ありがとう
余分な空白を含む文字列がありますが、空白が複数ある場合は必ず1つだけにしてください。
誰でも?私はグーグルを検索してみましたが、何もうまくいきませんでした。
ありがとう
回答:
このようなもの:
var s = " a b c ";
console.log(
s.replace(/\s+/g, ' ')
)
次のように、Stringを拡張して、これらの動作をメソッドとして実装できます。
String.prototype.killWhiteSpace = function() {
return this.replace(/\s/g, '');
};
String.prototype.reduceWhiteSpace = function() {
return this.replace(/\s+/g, ' ');
};
これにより、次のエレガントなフォームを使用して、必要な文字列を生成できます。
"Get rid of my whitespaces.".killWhiteSpace();
"Get rid of my extra whitespaces".reduceWhiteSpace();
replace関数で正規表現を使用すると、うまくいきます。
string.replace(/\s/g, "")
var s = ' a b word word. word, wordword word ';
// with ES5:
s = s.split(' ').filter(function(n){ return n != '' }).join(' ');
console.log(s); // "a b word word. word, wordword word"
// or ES6:
s = s.split(' ').filter(n => n).join(' ');
console.log(s); // "a b word word. word, wordword word"
文字列を空白文字で分割し、すべての空の配列項目(1つ以上のスペースであったもの)を配列から削除し、すべての単語を文字列に結合し、間に1つの空白文字を入れます。
私はあなたが文字列の最初と/または最後からスペースを取り除くことを望んでいると思います(すべてのスペースを削除するのではなく?
その場合は、次のような正規表現が必要です。
mystring = mystring.replace(/(^\s+|\s+$)/g,' ');
これにより、文字列の最初または最後からすべてのスペースが削除されます。末尾からスペースを削除するだけの場合、正規表現は次のようになります。
mystring = mystring.replace(/\s+$/g,' ');
お役に立てば幸いです。
''
代わりにするあり' '
ます。
私は主題についてネクロマンシーをすべきではないことを知っていますが、質問の詳細を考えると、私は通常、それを次のように拡張します:
このために、私は次のようなコードを使用します(コードを少し読みやすくするために、最初の正規表現の括弧はそこにあります...正規表現に慣れていない限り、正規表現は苦痛になる可能性があります)。
s = s.replace(/^(\s*)|(\s*)$/g, '').replace(/\s+/g, ' ');
これが機能する理由は、String-objectのメソッドが(jQueryや他のライブラリと同様に)別のメソッドを呼び出すことができる文字列オブジェクトを返すためです。単一のオブジェクトで複数のメソッドを続けて実行したい場合は、コードをよりコンパクトにする方法。
var x = "テストテストテスト" .split( "").join( ""); alert(x);
これを試して。
var string = " string 1";
string = string.trim().replace(/\s+/g, ' ');
結果は
string 1
ここで起こったことは、最初にを使用して外側のスペースをtrim()
トリムし、次にを使用して内側のスペースをトリムすること.replace(/\s+/g, ' ')
です。
ユーザーが名前に空白を入れることを制限したい場合は、ifステートメントを作成して条件を指定するだけです。私がしたように:
$j('#fragment_key').bind({
keypress: function(e){
var key = e.keyCode;
var character = String.fromCharCode(key);
if(character.match( /[' ']/)) {
alert("Blank space is not allowed in the Name");
return false;
}
}
});
これはどう?
"my test string \t\t with crazy stuff is cool ".replace(/\s{2,9999}|\t/g, ' ')
出力 "my test string with crazy stuff is cool "
これもタブを取り除きます
\s
ます。不必要に複雑な正規表現/\s+/g
。