javascript - 如何从javascript中的字符串中提取参数(指定模式字符串)

标签 javascript regex

我需要从 url 路径中提取参数名称。 参数位于 {} 内或跟随第一个 ?(问号)或跟随 URL 中的 & 标记。

需要提取的url路径格式如下:

/tt/{pa}/{pb}/?p1=9888&p2=9&p3=98

因此参数为 papbp1p1p3

最佳答案

我能想到的最快方法是:

[{?&][^}=]+

Regular expression visualization

Debuggex Demo

现在我还捕获了其前面的 {?& 字符,因此您必须在之后将其剪掉:

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/

相关文章:

javascript - 如何为带有尾随页面的网站 url 编写正则表达式

javascript - 绘制对数图 (Javascript)

javascript - highcharts 中的多线图

python - 斯坦福自然语言处理 : How to get chunks

javascript 正则表达式在匹配之前检查字符但不将其包含在结果中

mysql - 正则表达式匹配两个模式之间的数字

javascript - 如何在mootools中同时执行多个动画?

javascript - 如何增加通知时间

javascript - 当滚动点超过 div 顶部时功能不启动

regex - 如何从 EXSLT 获取 Regexp 在 libxslt 中工作?