|
精易模块源码:
|
网页_取单条Cookie | 文本型 | | |
Cookie | 文本型 | | | | 名称 | 文本型 | | | | 不附带名称 | 逻辑型 | | | |
Cookie = 删首尾空 (Cookie )如果真 (取文本右边 (Cookie, 1 ) ≠ “;”)Cookie = Cookie + “;”t = 取单条Cookie (Cookie, 名称)判断 (不附带名称 或 t = “”)返回 (t )返回 (名称 + “=” + t )|
取单条Cookie | 文本型 | | |
原Cookies | 文本型 | | | | 单条Cookie名称 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | Cookies | 文本型 | | 0 | i | 整数型 | | | Name | 文本型 | | |
Cookies = 分割文本 (原Cookies, “;”, )计次循环首 (取数组成员数 (Cookies ), i )Name = 文本_取左边 (删首尾空 (Cookies [i ]), “=”, , )如果真 (到小写 (Name ) = 到小写 (单条Cookie名称 )) 如果真 (寻找文本 (删首尾空 (Cookies [i ]), “:”, , 假) ≠ -1 )返回 (文本_取出中间文本 (删首尾空 (Cookies [i ]), “=”, “:”, )) 返回 (文本_取右边 (删首尾空 (Cookies [i]), “=”))计次循环尾 ()返回 (“”)
优化代码[正则] : ---->>>
|
正则_取单条Cookie | 文本型 | | |
Cookie | 文本型 | | | | 名称 | 文本型 | | | | 不附带名称 | 逻辑型 | | | | 区分大小写 | 逻辑型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 正则 | 正则表达式 | | | 结果 | 搜索结果 | | | 值 | 文本型 | | |
正则. 创建 (“(?:^|;+|\s+)*(” + 删首尾空 (名称 ) + “=(?:([^;]*)))”, 区分大小写 )结果 = 正则. 搜索 (Cookie, 1, )值 = 结果. 取子匹配文本 (Cookie, 选择 (不附带名称, 2, 1 ), )返回 (删首尾空 (值 ))
有何不同? 对比一下:
Cookie文本 | 取值 | 网页_取单条Cookie | 正则_取单条Cookie | 取重复文本(20,"a=1;b=2;c=3;d=4;e=5;")+"z=100;" | z | 执行10000次4.649秒 | 执行10000次0.671秒 | a=1;b=2;c=3;d=4;e=5;z=100; | z | 取值正常 | 取值正常 | ; ;a=1; ; b=2;c=3;d=4;e=5; ; z=100 ; ; | z | 取值正常 | 取值正常 | a=1;b=2;c=3;d=4;e=5;z=k=1*100 | z | 值等于1*100 | 值等于k=1*100 | a=1;b=2;c=3;d=4;e=5;y=100 | Y | 不支持区分大小写 | 支持区分大小写 |
为何要区分大小写?
- 原文 http://www.cftea.com/c/823.asp
- cookie 名称区分大小写吗?
- ASP 里 cookie 名称是不区分大小写的,比如:
- response.cookies("aa") 与 response.cookies("AA") 是指的同一个 cookie。
- 但 JS(JavaScript) 里则是区分大小写的,比如:
- document.cookie = "aa=1";
- document.cookie = "AA=2";
- 运行这两句之后,就存在两个 cookie。
- 其实,cookie 名称本是区分大小写的,只不过由于 ASP 进行了封装,使得 cookie 名称不区分大小写,我们也可以对 JS 封装,以使 cookie 名称不区分大小写。
复制代码
哦, 对了, 精易模块的原则是不调用核心库以外的其他库,
那么, 正则对象吧
|
正则_取单条Cookie2 | 文本型 | | |
Cookie | 文本型 | | | | 名称 | 文本型 | | | | 不附带名称 | 逻辑型 | | | | 区分大小写 | 逻辑型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 正则 | 对象 | | | 搜索 | 变体型 | | | 结果 | 对象 | | | 匹配 | 对象 | | | 值 | 文本型 | | |
正则. 创建 (“VBScript.RegExp”, )正则. 写属性 (“IgnoreCase”, 区分大小写 )正则. 写属性 (“Pattern”, “(?:^|;+|\s+)*(” + 删首尾空 (名称 ) + “=(?:([^;]*)))”)搜索. 赋值 (Cookie, )结果 = 正则. 对象型方法 (“Execute”, 搜索 )匹配 = 结果. 读对象型属性 (“Item”, 0 )值 = 匹配. 读属性 (“Item”, 选择 (不附带名称, 1, 0 )). 取文本 ()返回 (删首尾空 (值 ))
不过 , 这么一改之后.....
Cookie文本 | 取值 | 网页_取单条Cookie | 正则_取单条Cookie | 取重复文本(20,"a=1;b=2;c=3;d=4;e=5;")+"z=100;" | z | 执行10000次4.649秒 | 执行10000次10.905秒 | a=1;b=2;c=3;d=4;e=5;z=100; | z | 取值正常 | 取值正常 | ; ;a=1; ; b=2;c=3;d=4;e=5; ; z=100 ; ; | z | 取值正常 | 取值正常 | a=1;b=2;c=3;d=4;e=5;z=k=1*100 | z | 值等于1*100 | 值等于k=1*100 | a=1;b=2;c=3;d=4;e=5;y=100 | Y | 不支持区分大小写 | 支持区分大小写 |
算了, 就当是一次学习笔记吧...恩
.
|
|