1

空白以外のすべて、または二重スペース間の単語のみに一致する正規表現が必要です。

お気に入り :

たとえば、 underscoreswhere がに等しいと仮定しましょう。spaces

foo_bar__The_Quick_Dog__is_addicted_to___jumping___

次にreplacespaceswith any symbol、できれば a Comma (,).

したがって、次のようにする必要があります。foo bar、The Quick Dog はジャンプにはまっています。

ただし、ジャンプcommaという単語は、末尾にあるため、空白をに置き換えてはいけません...それに a を追加しcommaても意味がありません

私は試した:

/\(\s*([^)]+?)\s*\)/

[a-z].\s{2,}.*

\s\s.*[a-z]

(?:[a-zA-Z0-9]+[ ])+[a-zA-Z0-9]+

そしてさらに数百... まだダメです。

感謝

4

2 に答える 2

1

置き換えを使用する ( mdn doc ) :

var s = 'foo bar  The Quick Dog  is addicted to jumping  ';
s.replace(/ {2,}(.)?/g, function (m, p) { return p ? ', ' + p : '.'; });
// prints "foo bar, The Quick Dog, is addicted to jumping."

match+を使用しjoinます。これも先頭の空白を削除します:

var s = '   foo bar  The Quick Dog  is addicted to jumping  ';
var m = s.match(/[^ ]+( [^ ]+)*/g);
m && (m.join(', ') + '.'); // null OR join()
// prints "foo bar, The Quick Dog, is addicted to jumping."

match+join関数内 :

function fix(str, separator) {
    var m = str.match(/[^ ]+( [^ ]+)*/g);
    return m && (m.join(separator || ', ') + '.');
}

var s = ' ab cd   ef   gh ';
fix(s); // "ab cd, ef, gh."
fix(s, ' - '); // "ab cd - ef - gh."
fix(' '); // null
于 2013-10-04T16:55:11.537 に答える