关于正则表达式的困惑

Roc*_*ngh 2 javascript regex

我刚刚在JavaScript中找到了这个正则表达式

var str=input.replace(/\0/g, "\\0");
Run Code Online (Sandbox Code Playgroud)

你能解释一下这是什么意思吗?是什么意思/\0/g\\0

Don*_*nut 10

\0 是空字符.

/\0/g 是一个匹配null字符的所有实例的模式.

"\\0"是一个字符串,将显示为" \0",因为第一个反斜杠充当第二个反斜杠的转义字符.

因此,这行代码替换了字符串中的所有空字符实例(通常是不可读的,除非您使用十六进制查看器),input并将其替换为人类可读的字符串" \0",然后将结果存储在字符串中str.


Ama*_*osh 5

它使用\0反斜杠(\)后跟a 替换字符串中的空字符(- Unicode 0x0)0.

var s = "asd0asd\x00asd";
console.log(s);
s = s.replace(/\0/g, "\\0");
console.log(s);
Run Code Online (Sandbox Code Playgroud)

输出是:

asd0asdasd
asd0asd\0asd