Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式替换为捕获的_Javascript_Node.js_Regex_Regex Group - Fatal编程技术网

Javascript 正则表达式替换为捕获的

Javascript 正则表达式替换为捕获的,javascript,node.js,regex,regex-group,Javascript,Node.js,Regex,Regex Group,我想用“[”和“]”的自首替换字符串中的所有非字母数字字符 我试过这个: var text = "ab!@1b*. 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(节点)实现这一点?您需要将组括在括号中以将

我想用“[”和“]”的自首替换字符串中的所有非字母数字字符

我试过这个:

var text = "ab!@1b*. 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(节点)实现这一点?

您需要将组括在括号中以将其分配给$1,如下所示:

var text=“ab!@1b*.ef”;
var regex=/(\W)/g;
var result=text.replace(regex,“[$1]”);

控制台日志(结果)无需使用捕获组包装。使用
text.replace(regex,[$&]”)