关于正则表达式的困惑

时间:2010-10-26 13:20:15

标签: javascript regex

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

var str=input.replace(/\0/g, "\\0");

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

2 个答案:

答案 0 :(得分:10)

\0是空字符。

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

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

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

答案 1 :(得分:5)

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

var s = "asd0asd\x00asd";
console.log(s);
s = s.replace(/\0/g, "\\0");
console.log(s);

输出是:

  

asd0asdasd
  asd0asd \ 0asd