2017-08-23 7 views
2

"["と "]"のために文字列内のすべての非英数字を自動的に置き換える必要があります。Regexがキャプチャされたものに置き換えられる

私はこれを試してみました:私は得るために期待していた

var text = "[email protected]*. ef"; 
var regex = /\W/g; 

var result = text.replace(regex, "[$0]"); 

console.log(result); 

ab[!][@]1b[*][.][ ]ef

しかし、その代わりに、私は得る:

ab[$0][$0]1b[$0][$0][$0]ef

Javascript(ノード)を使用してこれを行うにはどうすればよいですか?

+0

キャプチャグループでラップする必要はありません。 'text.replace(regex、" [$&] ")'を使って、 –

答えて

3

あなたはこのように$ 1に割り当て括弧でグループをラップする必要があります。

var text = "[email protected]*. ef"; 
 
var regex = /(\W)/g; 
 

 
var result = text.replace(regex, "[$1]"); 
 

 
console.log(result);

関連する問題