Javascript 如何在match函数中检查正则表达式中的两个组是否相等

Javascript 如何在match函数中检查正则表达式中的两个组是否相等,javascript,regex,Javascript,Regex,我有一个类似“Sat 8-11,Sat 11-18”的时间间隔信息,我想检查第一个时间间隔(11)中的第二个小时是否等于第二个时间间隔(11)中的第一个小时,然后将这两个小时合并为一个“Sat 8-18”。 如果有人给我一个提示那就太好了 使用带有特定正则表达式模式的String.prototype.match()函数的解决方案: var s=“Sat 8-11,Sat 11-18”, r=s.match(/([A-Z][A-Z]+)(\d{1,2})-(d{1,2}),\1(\d{1,2})

我有一个类似“Sat 8-11,Sat 11-18”的时间间隔信息,我想检查第一个时间间隔(11)中的第二个小时是否等于第二个时间间隔(11)中的第一个小时,然后将这两个小时合并为一个“Sat 8-18”。
如果有人给我一个提示那就太好了

使用带有特定正则表达式模式的
String.prototype.match()函数的解决方案:

var s=“Sat 8-11,Sat 11-18”,
r=s.match(/([A-Z][A-Z]+)(\d{1,2})-(d{1,2}),\1(\d{1,2})-(d{1,2})/);
//如果输入字符串与模式和第二个小时匹配
//第一个时间间隔等于第二个时间间隔的第一个小时
如果(r.length==6&&r[3]==r[4]){
s=r[1]+''+r[2]+'-'+r[5];
}

console.log
您可以通过使用反向引用替换
来完成此操作:

var s=“Sat 8-11,Sat 11-18”;
s=s。替换(/([a-z]+)(\d+)-(\d+),\1\3-/i,“$1$2-”;

控制台日志你也有类似于
'Fri 8-12'
的东西吗?非常聪明!:-)