我已将查询参数格式从&Key = Value更改为/ Key / Value。
现在我正尝试使用正则表达式在URL中解析它们。不知道我在做什么错,但这是我的代码
示例网址路径:http://localhost/MyApp/#!/Page1/SubPage1/SubPage2/Key/value-example
let re = new RegExp(`^.*/(Key)/([a-zA-Z0-9]+).*$`);
while (match = re.exec(url)) {
params[match[1]] = match[2];
}
它以无限循环结束
我在做什么错了?
答案 0 :(得分:1)
我建议使用split()
,而不是使用正则表达式。
var url = 'http://localhost/MyApp/#!/Page1/SubPage1/SubPage2/Key/value-example'
var keyName = 'Key'
var urlParts = url.split('/')
var keyIndex = urlParts.indexOf(keyName) // "Key" is at index #8
// Since the value appears right after the key, we can access it by increasing the index by 1
var value = urlParts[keyIndex + 1] // "value-example" is at index #9
这是命令url.split('/')
的结果:
[ 'http:',
'',
'localhost',
'MyApp',
'#!',
'Page1',
'SubPage1',
'SubPage2',
'Key',
'value-example' ]
所以我们要做的是在数组中找到所需键的索引并查看下一个值-index + 1。