正如我在评论中提到的,我认为单个正则表达式可能不是完成这个任务的最佳方法,但这里有一个正则表达式,它可以匹配从1999年至2024年(包括两端年份)的所有年份。
let re = /1999|20[01]\d|202[0-4]/gi;
let str = "Goodbye 1999, hello 2000!";
let newstr = str.replaceAll(re, "new");
console.log(newstr); // 输出:Goodbye new, hello new!
更好的做法可能是遍历所有年份,完全避免可能出现的正则表达式错误。
let str = "Goodbye 1999, hello 2000!";
for (let i = 1999; i <= 2024; i++) {
str = str.replace(i.toString(), "new");
}
console.log(str); // 输出:Goodbye new, hello new!