我正在尝试编写一些正则表达式,以检测以一组数字结尾的URL,然后是正斜杠,然后是另一组数字。当我使用\d+\/\d+$之类的东西时,在测试时可以正常工作,但不能在控制台中使用。例:

var testRegex = new RegExp('\d+\/\d+$');testRegex.test('http://somedom.com/somepath/2024/3');

在chrome的控制台中返回false,但是当我使用https://regex101.com/http://regexpal.com/之类的东西时找到匹配项

有什么想法吗?

提前致谢,

最佳答案

您需要转义反斜杠:

var testRegex = new RegExp('\\d+\\/\\d+$');


在字符串文字中,JavaScript引擎会将'\d'视为'd'。将\(反斜杠)放在另一个\(反斜杠)之前可以对其进行转义,并且文字将被评估为\d

这同样适用于\/,尽管您可以使用/代替\\/,因为您没有使用正则表达式文字:

var testRegex = new RegExp('\\d+/\\d+$');

07-24 18:12