我需要从 url 路径中提取参数名称。 参数位于 {} 内或跟随第一个 ?(问号)或跟随 URL 中的 & 标记。
需要提取的url路径格式如下:
/tt/{pa}/{pb}/?p1=9888&p2=9&p3=98
因此参数为 pa
、pb
、p1
、p1
、p3
最佳答案
我能想到的最快方法是:
[{?&][^}=]+
现在我还捕获了其前面的 {
或 ?
或 &
字符,因此您必须在之后将其剪掉:
var inp = '/tt/{pa}/{pb}/?p1=9888&p2=9&p3=98'
var found = inp.match(/[{?&][^}=]+/g).map(function(p){ return p.substring(1); });
document.write(found.join('<br />'));
如果您期望类似 /tt/{pa=}/{pb}/?p1={9888&p2=9&p3=98
的内容,其中 pa=
是有效的参数名称和/或 {9888
是一个有效值,你会遇到麻烦。但我怀疑这是一个严重的限制。
关于javascript - 如何从javascript中的字符串中提取参数(指定模式字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29699871/