我习惯在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的替代方案是什么?
答案 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