我今天正在学习正则表达式的介绍,我在 SO 上看到了这篇文章
为了测试这些模式:/video/123/slug
并且/video/123
,给出了这个正则表达式:
([^/]+)/([0-9]+)(?:/([^/]+))?
我基本上了解它是如何工作的,但是,它仅在我将其放入构造函数正则表达式时才有效:
var test1 = new RegExp("([^/]+)/([0-9]+)(?:/([^/]+))?"),
a = "/video/123/slug",
b = "/video/123";
console.log(test1.test(a)); //true
但这样做确实失败了:
/([^/]+)/([0-9]+)(?:/([^/]+))?")/.test(a) // all sorts of warnings and an error: Uncaught SyntaxError: Unexpected token )