8 回答
PingAnt
TA贡献1条经验 获得超1个赞
给定 regexp 为 /(^|&)name=value/
test "name=value" => true
test "&name=value" => true
test "%name=value" => false
lenmer
TA贡献4条经验 获得超4个赞
我也是今天才看到的,不好意思啊!
说一下自己的愚见吧:
() 标记一个子表达式的开始和结束位置;
^ 匹配输入字符串的开始位置;
| 指明两项之间的一个选择;
没什么问题。
如果不懂(^|&)我们把它分开来看;
字符串123abc&
单是^会匹配到什么?空吧。
单是&会匹配到什么?&吧。
那么^|&会匹配到什么?如果你用测试工具,会有两个匹配:一个空,一个&;那么在js中来测试的话,结合上 | ,也就是什么都不会输出,因为^已经匹配到一个空了,自然不会再去匹配到&,如果你加一个a,变成(^a|&),同理,^a匹配不到吧,当然就匹配到&咯。
以上是我的个人见解,你可以多测试,实践检验真理
kevinZee
TA贡献50条经验 获得超39个赞
这个表示开头匹配或者结尾匹配,因为没有给定条件,所以匹配任意字符串都是true
var reg = /(^a|b$)/;
比如我给定上面一个正则实例,他就可以匹配 【开头是a 或者 结尾是b】 的字符串,并且因为括号分组,使用macth等方法可以拿到这个字符串的开头或者结尾.
比如
"assdasdsdb".match(reg); // ["a", "a", index: 0, input: "assdasdsdb"]
添加回答
举报
0/150
提交
取消