Javascript NodeJS-正则表达式未按预期工作\0被解释为\u0000

Javascript NodeJS-正则表达式未按预期工作\0被解释为\u0000,javascript,node.js,Javascript,Node.js,数据实际上来自websocket,我想从中提取1234 var data = 'TEST|1234\0' console.log(data); Output: TEST|1234 因此,regex也不能像预期的那样工作 var regex = /\|(.*?)\\/; var re = new RegExp(regex, "g"); var extractedNumber = msg.match(re); console.log(extractedNumber); O

数据实际上来自websocket,我想从中提取
1234

var data = 'TEST|1234\0'
console.log(data);

Output: 
TEST|1234
因此,regex也不能像预期的那样工作

var regex = /\|(.*?)\\/;
var re = new RegExp(regex, "g");
var extractedNumber = msg.match(re);
console.log(extractedNumber);

Output:

null
但是如果我更改正则表达式以查看发生了什么,我会看到
\0
正在变成
\u0000

var regex = /\|(.*)/;
var re = new RegExp(regex, "g");
var extractedNumber = msg.match(re);
console.log(extractedNumber);

Output:

[ '|1234\u0000' ]
这个答案表示,
\u0000
将是ASCII码为0的字符的unicode表示


如果知道模式,就不必使用正则表达式

var data = 'TEST|1234\0'
console.log(+(data.slice(data.indexOf('|') +1, data.indexOf('\\'))))

+
要将其转换为数字,
'.+1
\
(必须在
索引处写入两次
\

不知道这是否是您的问题,但只知道当您声明
var data='TEST\1234\0'
时,结束字符串实际上不包含“\”。它转义
0
,将其视为ascii码。如果你想让它包含一个“\”,你需要转义它:
var data='TEST | 1234\\0'
我想我们也不能转义它。。因为为了转义,我首先需要将它存储在一个变量中。数据来自websocket。是的。它位于
TEXT | NUMBER\0
中,我想提取数字