一个正则的问题 a(?!b) 求解

yinkehao 2011-08-08 05:08:18
我现在有URL字符串

现在要取参数v
我的做法是
var p=&d=1&v=323?4534&5&wd=?wer&c=7345;
var _reg=/"&(v)(=?)([^&(?!amp;)]*)"/
_reg.exec(p)
期望值是
["&view=323?4534&5", "view", "=", "323?4534&5"]
而实际返回值是
["&view=323", "view", "=", "323"]

主要是这个 (?!n)语法在遇到 ^ 的时候好像就出问题了
这个地方我也尝试过改成[^(&(?!amp;))]*也是不行的
...全文
68 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
JParser 2011-08-08
  • 打赏
  • 举报
回复
var rg=new RegExp("\\S*&v=(\\S*?)&(?!amp;)");
yinkehao 2011-08-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jparser 的回复:]

按题目要求,可以用这个
var reg=/\S*&v=(\S*?)&(?!amp;)/;

你的=号和v,我觉得不需要子匹配,如果要,你自己加上
[/Quote]
又研究了一下,发现如果 使用 /regexp/方式可以 ,但是有 new RexExp 和 compile就不行了。很费解
yinkehao 2011-08-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jparser 的回复:]

按题目要求,可以用这个
var reg=/\S*&v=(\S*?)&(?!amp;)/;

你的=号和v,我觉得不需要子匹配,如果要,你自己加上
[/Quote]
我用这个方法不行的,返回null
yinkehao 2011-08-08
  • 打赏
  • 举报
回复
这个在ff下你试过吗?我怎么返回null呢
JParser 2011-08-08
  • 打赏
  • 举报
回复
按题目要求,可以用这个
var reg=/\S*&v=(\S*?)&(?!amp;)/;

你的=号和v,我觉得不需要子匹配,如果要,你自己加上
kyzy_yy_pm 2011-08-08
  • 打赏
  • 举报
回复
咋看不到view是啥呢

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧