请教一个cookie中用到的正则
new RegExp("address=([^;]*)")
var str = 'username=wang; address=shanghai'
表示 address= 加上除了分好外的东西??
那个星号是啥,加了星号能去除shanghai,不加的话就取了一个s
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
嗯嗯,[^;] 表示匹配一个不为 ; 的字符,仅仅匹配一次
*表示匹配任意次,默认是符合匹配规则的情况下,越多越好,所以匹配到了后面全部的,直到;
不加 * 就是上面的,默认仅仅匹配一次,所以只能匹配到一个 s
谢邀!
首先恭喜您已经解决!白天忙于nextjs + react + 。。。 重构项目,没来得及看!在这里我再一一说一下,就当歉意了!
RegExp
构造函数创建了一个正则表达式对象,用于将文本与一个模式匹配。语法:
参数:
pattern:
正则表达式的文本。flags:
可选,g、i、m、u、y
,其中g和i
最为常用。正则表达式中特殊字符的含义:
(x):
匹配 x 并且捕获匹配项,这被称为捕获括号。[^x]:
一个反义或补充字符集,也叫反义字符组。也就是说,它匹配任意不在括号内的字符。在这里[^;]:
也就是除了分号以外的任意字符x*:
匹配前面的模式 x
0 或多次。在这里前面的模式为[^;]也就是除了分号以外的任意字符
匹配0或多个字符啊,不加的话就匹配一个字符
[^;]
除了分号以外的任意字符*
匹配前一个表达式0次或多次所以就是匹配除了分号以外任意字符0次或多次
和?还有+在正则表达式中属于量词,的范围是[0,+∞),?的范围是0或1,+的范围是[1,+∞)。
但从你这题目中只能给你这么多解答了
*
相对于 {0,} 表示出现任意次数重点是 它为 贪婪量词,表示尽可能多的匹配满足满足条件
[^;]
也就是非 分号的字符,相反的就有惰性量词
*?
,也就是惰性匹配,尽可能少的匹配。[]
定义字符匹配的范围,其中可以加一些特殊符号,比如[a-z]
,^
表示取反,即不包含。*
出现在字符后面是量词,表示字符的数量。比如+
表示 1 到多,?
表示 0,1 ; 那*
就表示这两者的合集,0 到多。当然还可以用{}
表示数量,比如{0,1}
。