考虑到以下两个 javascript 代码片段,我希望 t1 和 t2 都被评估为 false。
var p1 = /^\W*(Port )?(\d+)((X\d+)+)\W*$/
var t1 = p1.test("1X2X")
var m1 = p1.exec("1X2X") // return null (as expected)
var p2 = /^\W*(Port )?(\d+)((\/\d+)+)\W*$/
var t2 = p2.test("1/2/")
var m2 = p2.exec("1/2/") // return ["1/2/", undefined, "1", "/2", "/2"]
但是当我在 Firefox (17.0) 中运行代码时,t1 被评估为 false(如预期的那样),但 t2 被评估为 true。有人可以提供一些关于为什么 t2 被评估为 true 的信息吗?