Javascript Regex“;以“结束”;vs";不以“结束”;

Javascript Regex“;以“结束”;vs";不以“结束”;,javascript,regex,Javascript,Regex,以下javascript将布尔值呈现到每个语句的右侧: var reg = new RegExp(/^[\w\/].*result\b/); console.log(reg.test('pathtofiletest')); -> false console.log(reg.test('path/to/file/test')); -> false console.log(reg.test('/path/to/file//test/result')); -> true conso

以下javascript将布尔值呈现到每个语句的右侧:

var reg = new RegExp(/^[\w\/].*result\b/);

console.log(reg.test('pathtofiletest')); -> false
console.log(reg.test('path/to/file/test')); -> false
console.log(reg.test('/path/to/file//test/result')); -> true
console.log(reg.test('/path/to/file/not_a_test$#%$5724')); -> false
太棒了!这正是我想要的。现在我想反转结束语句。我希望不以result结尾的其他字符串为true,而以result结尾的语句为false。但是,我不能否认这一说法。我试过:

^[\w\/].*^result\b
^[\w\/].*(?!result\b)
^[\w\/].*^(?!result\b)
^[\w\/].^(result\b)
在一大堆其他人中。我错过了什么

好奇者申请

我问这个问题的原因是因为我在nodejs中使用express。我打电话

router.get('/pathstring', function (req, res, next) {
    //code
}

pathstring是一个正则表达式。这不是简单的对或错。

你能不能否定这个结果?比如:

!reg.test('pathtofiletest')

像这样的东西应该有用

^(?!.*result$).*$

你能写下
吗!注册测试(…)
?否。请参阅对@Zagrev答案的评论。我将georg的答案标记为正确,因为它是对这个特定问题的正确答案。然而,它仍然无法使用express的路由功能,所以我不得不问另一个问题来解决这个问题。这不是我想要做的。我在另一个应用程序中使用regex,而不是在实际的reg.test()函数中。如果regex专业人士不熟悉nodejs和express get请求,我只是不想推开他们的回答。好吧,但逻辑仍然成立。与其尝试创建一个反向regexp,为什么不创建一个返回反向结果的函数呢?适当地命名函数(如PathEndsInResult(…)。逻辑是可靠的。但同样,这不是应用程序。我将在最后用应用程序更新问题,只是为了澄清。如果不是每行1美元,也可以将$替换为\b。这非常可靠。它不能直接工作,所以我不得不摆弄它。为什么在帕伦斯之后的最后会出现。*?