我正在尝试编写一些正则表达式,以检测以一组数字结尾的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+$');