js 正则问题?

var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');

这一段是获取url 参数的正则,就是不明白 |& 这两个字符在里面起什么作用,这两个好像是普通的字符,希望大神们能说明一下这段正则,谢谢!!!

阅读 2.5k
5 个回答
(^|&) + name + =(1*)(&|$)//方便说明把拼串的引号去掉了

|表示或,&确实是个字符
前面(^|&) + name相当于^name或&name,即以name开头,或者匹配&name
后面同理

('(^|&)' + name + '=(1*)(&|$)', 'i')

( ^ | )
是正则表达式里面的“元字符”
如果要匹配 ^或& ,就要写成 (\^|&)这种形式
^表示匹配输入字符串开始的位置 就是以name开头 或者匹配name

|匹配表达式之间的"或"关系.
^匹配输入字符串的开始位置
$匹配输入字符串的结尾位置

(^|&)表示匹配^或&.(&|$)表示匹配&或$.

但是这样分割貌似是分割指定格式参数的.

新手上路,请多包涵

就是一个普通字符

新手上路,请多包涵
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏