7

次の置換機能があります

myString.replace(/\s\w(?=\s)/,"$1\xA0");

目的は、1 文字の単語 (前置詞など) を取り、それらの後に標準のスペースの代わりに改行なしのスペースを追加することです。

ただし、上記の $1 変数は機能しません。元の一致した文字列 + nbsp の一部の代わりに、テキスト "$1 " を挿入します。

観察された行動の理由は何ですか?それを達成する他の方法はありますか?

4

2 に答える 2

9

キャプチャ サブグループがないため、$1 は機能しません。

正規表現は次のようになり/\b(\w+)\s+/ます。

于 2010-02-19T09:37:44.177 に答える
5

あなたはこのようなことをしたいようです:

myString.replace(/\s(\w)\s/,"$1\xA0");

しかし、そうすれば、1 文字の単語の前の空白が失われます。\sしたがって、キャプチャ グループに最初のものも含めたいと思うでしょう。

于 2010-02-19T09:38:22.830 に答える