我有一串看起来像这样的文字:
?q=search&something=that&this=example/
在该示例中,我需要抓住that
。我正在使用以下正则表达式:
var re = new RegExp("\&(.*?)\&");
哪位前往re[1]
给了我:
something=that
- 但它必须只有that
我试过了:
var re = new RegExp("\=(.*?)\&");
但是这给了我第一个等号的一切,所以:
search&something=that
输出是否只需要:
that
我需要以某种方式定位第二次出现的2个字符并抓住它们之间的什么。我最好怎么做?
答案 0 :(得分:1)
split
似乎更适合您的情况:
"?q=search&something=that&this=example/".split("&")[1].split("=")[1]
然后你也可以实现一个简单的方法来提取任何想要的值:
function getValue(query, index) {
const obj = query.split("&")[index];
if(obj) obj.split("=")[1]
}
getValue("?q=search&something=that&this=example/", 1);
答案 1 :(得分:1)
您可以使用
/something=([^&]+)/
并选择第一组,请参阅JavaScript
示例:
let url = '?q=search&something=that&this=example/';
let regex = /something=([^&]+)/
let match = regex.exec(url);
console.log(match[1]);