【发布时间】:2012-06-03 06:15:37
【问题描述】:
所以我使用正则表达式从字符串中获取信息,问题是我需要在字符串中的/ 处启动和停止。
这是一个例子
var regexp = /\/(.*?)=(.*?)\//g;
var url_hash = "/s=lorem+ipsum/p=2/";
var match;
var result = {};
while ((match = regexp.exec(url_hash)) != null) {
result[match[1]] = match[2];
}
我可以毫无问题地抓取result['s'],但抓取result['p'] 会出现问题,因为result['s'] 的结尾/ 与result['p'] 的开头/ 相同。如果我将字符串更改为/s=lorem+ipsum//p=2/,它会完美运行,但这当然很可怕。那么我该如何解决这个问题,以便它在/ 结束和启动?我被卡住了,感谢任何帮助。
【问题讨论】:
-
为什么不能使用
/\/(.*?)=(.*?)/g;作为正则表达式? -
我不知道,但除非我添加额外的斜杠,否则它不会抓住
result['p']。继续测试它。 -
(.*?)不会在 Ian 想要的地方结束。相反,结果 ['s'] 将包含=lorem+ipsum/p=2/
标签: javascript regex hash match