Javascript 如何返回正则表达式匹配子集(可能通过替换模式,但不替换)

Javascript 如何返回正则表达式匹配子集(可能通过替换模式,但不替换),javascript,regex,replace,match,Javascript,Regex,Replace,Match,考虑以下几点: var string = 'http://awesome-site.com/page/#s-in=ascending' var regex = /(s-in=)([\w.-]+)/g var match = string.match(regex) console.log(match) // this returns: s-in=ascending // Using replacement patterns, it's possibl to select // a s

考虑以下几点:

var string = 'http://awesome-site.com/page/#s-in=ascending'
var regex  = /(s-in=)([\w.-]+)/g


var match  = string.match(regex)
console.log(match) 
// this returns: s-in=ascending

// Using replacement patterns, it's possibl to select 
// a subset of the string selected via the regex

var subset = '$1' + 'new-string'
var match = string.replace(regex, subset)
cosnole.log(match)
// this returns: s-in=new-string
我试图找出如何通过regex返回等号后面的字符串(理想情况下是上面示例中的字符串,因为原始字符串(URL)可能相当复杂)

问题:


如何返回正则表达式匹配字符串的子集,例如:
=
后面的部分?

使用
exec
方法获取捕获的组,如下所示:

var re=/(s-in=)([\w.-]+)/g;
var str='1〕http://awesome-site.com/page/#s-in=上升';
while((m=re.exec(str))!==null){
警报(m[2]);

}
如果使用exec,它将返回一个包含所有捕获组和完全匹配的数组

var string = 'http://awesome-site.com/page/#s-in=ascending'
var regex  = /(s-in=)([\w.-]+)/g
regex.exec(string); //returns: ["s-in=ascending", "s-in=", "ascending"]
//下一行将创建RegExp构造函数的新对象。
var(变量名)=new RegExp(“您的正则表达式”),
//现在创建另一个变量来保存将匹配的子字符串
//对于名为“.exec()”的(已创建对象)方法,通过将“要匹配的字符串”作为参数传递来使用。

(子字符串变量名)=(变量名).exec('要匹配的字符串')感谢您关于无需捕获第一组和建议改进的注释。