记录和分享日常的地方

JS new RegExp 的坑

我准备实现读取 cookies,便从 MDN 复制了一段正则表达式(?:(?:^|.*;\s*)<COOKIE NAME>\s*\=\s*([^;]*).*$)|^.*$。简单使用/<正则表达式>/测试没问题之后就继续写代码了。

但是运行时发现程序无法实现想要的效果,检查了半天代码,才发现是正则表达式的问题。可是明明之前测试的时候是没问题的啊,我百思不得其解。又调试了半天,发现运行不了的原因是我用了new RegExp("<正则表达式>\")而转意反斜杠。

最后改为new RegExp("(?:(?:^|.*;\\s*)<COOKIE NAME>\\s*\\=\\s*([^;]*).*$)|^.*$")成功运行。

这其中有个问题干扰了我好久:用meal1作为 cookie 名就可以用未转义的正则读取,但是其他就不行。知道原因的朋友可以评论告诉我。

添加新评论