RegEx在JS中的否定前瞻

时间:2013-12-24 21:06:00

标签: javascript regex

我正在尝试编写一个RegExp,它将匹配站点ASIDE的所有子域。我认为最好的方法是先行,我认为我非常接近。

我将以amazon.com为例。 test.amazon.com将是我想避免的子域名。

到目前为止,我已经得到了这个:

var regexp = new RegExp("https?://(?!test\.)([^/]+\.)?amazon\.com/.*")

然而,似乎(?!test。)将使用“test”打破开始的任何子域。我希望\.会强制RegExp只有在“测试”之后有一段时间才会失败。情况似乎并非如此。

var regexp = new RegExp("https?://(?!test\.)([^/]+\.)?amazon\.com/.*")

regexp.test("https://amazon.com/")
true //Passes Correctly

regexp.test("https://www.amazon.com/")
true //Passes Correctly

regexp.test("https://atest.amazon.com/")
true //Passes Correctly

regexp.test("https://test.amazon.com/")
false //Fails Correctly

regexp.test("https://tester.amazon.com/")
false //Fails Incorrectly

1 个答案:

答案 0 :(得分:1)

hwnd发布了正确答案:

https?://(?!test)([^.]+\\.)?amazon\\.com/