gpt4 book ai didi

JavaScript 正则表达式使用一个字符两次

转载 作者:行者123 更新时间:2023-11-30 13:19:15 28 4
gpt4 key购买 nike

所以我使用正则表达式从字符串中获取信息,问题是我需要在字符串中的 / 处启动和停止。

举个例子

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/ 它可以完美运行,但当然这很可怕。那么我该如何解决这个问题,让它在 / 处结束和启动呢?我被卡住了,感谢任何帮助。

最佳答案

使用这个正则表达式:

/\/([^/=]+)=([^/]+)/

代码:

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];
document.writeln(match[1] + ' = ' + match[2] + '<br>');
}

输出:

s = lorem+ipsum
p = 2

Online demo of the code

关于JavaScript 正则表达式使用一个字符两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10868310/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com