Javascript NodeJS-正则表达式未按预期工作\0被解释为\u0000
数据实际上来自websocket,我想从中提取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
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
中,我想提取数字