在Chrome 10开发人员工具控制台测试:
> str = "t";
" "
> JSON.stringify(str)
""t""
> str.replace(/t/g,"\t")
"t"
所有的好。正则表达式能够复制部分JSON.stringify
行为并识别制表符。
现在让我们把t
换成b
:
> str = "b";
""
> JSON.stringify(str)
""b""
> str.replace(/b/g,"\b")
""
在这种情况下,replace
找不到退格字符。
那么,我尊敬的So同事们,谁能给我点提示,解释一下行为上的差异?
正则表达式中的转义序列与字符串字面值中的转义序列不相同。在正则表达式中,b
匹配单词边界。t
恰好在正则表达式和字符串字面量中是相同的。
MDC对这些有一个相当好的描述,尽管当然没有什么比去规范更重要的了。