如何在Javascript中执行此正则表达式?

时间:2014-12-19 10:39:00

标签: javascript regex

我习惯在Regex中使用PHP,但在Javascript中并未真正使用过if (location != '/group_breaks.php' && location != '/group_breaks' && location != '/group_breaks/') { } 。我环顾四周,但除了一些我不需要的正则表达式语法教程之外,我找不到答案。

例如,我想要执行以下操作,但使用正则表达式:

/^\/group_breaks(\.php|\/)?$/

我的正则表达式是:PHP

所以我可以在if (!preg_match('/^\/group_breaks(\.php|\/)?$/', $location)) { } 做到这一点:

{{1}}

Javascript的替代方案是什么?

3 个答案:

答案 0 :(得分:2)

你可以使用RegExp.test返回一个布尔值来告诉字符串是否匹配。

var yourStringHere = "This is a string";
if(/^\/group_breaks(\.php|\/)$/.test(yourStringHere)){
   // valid
}

答案 1 :(得分:1)

在Javascript中,您可以使用:

if ( /^\/group_breaks(\.php|\/)?$/.test(location)) {
}

请务必将(\.php|\/)?部分设为可选,以使其与/group_breaks/group_breaks//group_breaks.php

相匹配

答案 2 :(得分:0)

将你的正则表达式放在负面的预测中。

/^(?!\/group_breaks(\.php|\/)?$)/gm

示例:

> /^(?!\/group_breaks(\.php|\/)?$)/.test("/group_breaks.php")
false
> /^(?!\/group_breaks(\.php|\/)?$)/.test("/group_breaks/")
false
> /^(?!\/group_breaks(\.php|\/)?$)/.test("/group_breaks")
false
> /^(?!\/group_breaks(\.php|\/)?$)/.test("/group")
true