Serverless框架(JavaScript)中拆分Set-Cookie头为Cookie数组的问题
你可以使用正向预查正则表达式精准拆分Cookie之间的分隔符,避免误拆属性里的逗号。具体代码如下:
const cookieString = 'cookie1=value, cookie2=value2; Expires=Thu, 06 Jul 2023 14:45:25 GMT;'; const cookieArray = cookieString.split(/, (?=[a-zA-Z0-9_]+=)/);
正则逻辑说明
/, (?=[a-zA-Z0-9_]+=)/ 的作用是:
- 匹配
,(Cookie之间的标准分隔符) - 通过
(?=[a-zA-Z0-9_]+=)做正向预查,确保该分隔符后面紧跟的是Cookie名+等号(比如cookie2=),这样就不会把Expires日期里的,当成拆分点。
运行后得到的数组就是正确的单个Cookie条目:
cookie1=valuecookie2=value2; Expires=Thu, 06 Jul 2023 14:45:25 GMT;
如果你的Cookie名称包含连字符等特殊字符,可以把正则调整为:
cookieString.split(/, (?=[a-zA-Z0-9_\-]+=)/);
内容的提问来源于stack exchange,提问作者lpetrucci
相关产品推荐
相关产品推荐

