2014-12-19 59 views
0

我已經習慣於在PHP中使用Regex,但在Javascript中並沒有真正使用它;我環顧四周,但無法真正找到答案,而不僅僅是一堆我不需要的正則表達式語法的教程。如何在Javascript中執行這個正則表達式?

比如我想要的,但與正則表達式做如下:

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

} 

我正則表達式是:/^\/group_breaks(\.php|\/)?$/

這樣我就可以在PHP做到這一點我可以這樣做:

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

} 

Javascript有什麼替代?

+0

你的正則表達式不匹配'/ group_breaks' – 2014-12-19 10:41:11

+0

對不起,我錯過了''?編輯。 – Brett 2014-12-19 10:51:28

+0

不知道爲什麼downvotes,導致我不知道如何在Javascript中實現正則表達式? – Brett 2014-12-19 10:56:42

回答

1

在Javascript中你可以使用:

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

請記住爲(\.php|\/)?部分可選的,所以它匹配/group_breaks/group_breaks//group_breaks.php

+1

是......無意中錯過了'?'哈哈,謝謝!如果我想確保它*不匹配,怎麼樣?我可以在開始時加入'!'嗎? – Brett 2014-12-19 10:55:39

+0

是相信你可以做到'如果(/^\/group_breaks(\ PHP |!?\ /)$ /測試(位置)){...}'爲好。由於'regex.test'方法返回'boolean' – anubhava 2014-12-19 10:57:53

+1

謝謝! :) – Brett 2014-12-19 11:03:09

2

您可以使用RegExp.test返回boolean告訴如果字符串匹配與否。

var yourStringHere = "This is a string"; 
if(/^\/group_breaks(\.php|\/)$/.test(yourStringHere)){ 
    // valid 
} 
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