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

How can I execute this regex in Javascript?

本文关键字:执行 正则表达式 Javascript      更新时间:2023-09-26

我习惯于在PHP中使用Regex,但在Javascript中并没有真正使用它;我环顾四周,但除了一堆我不需要的正则表达式语法教程之外,真的找不到答案。

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

if (location != '/group_breaks.php' && location != '/group_breaks' && location != '/group_breaks/') {
}

我的正则表达式是:/^'/group_breaks('.php|'/)?$/

所以我可以做PHP我能做的:

if (!preg_match('/^'/group_breaks('.php|'/)?$/', $location)) {
}

Javascript中的替代方案是什么?

您可以使用

返回一个布尔值的RegExp.test,该布尔值告诉字符串是否匹配。

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

在 Javascript 中,您可以使用:

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

请记住('.php|'/)?部分设置为可选,以便它与/group_breaks/group_breaks//group_breaks.php匹配

把你的正则表达式放在一个消极的展望中。

/^(?!'/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