2014-12-19 8 views
0

나는 RegexPHP에 사용했지만 실제로 많이 사용하지는 않았다. 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' –

+0

죄송합니다, 나는'를 놓친'?. 편집 됨. – Brett

+0

이유는 downvotes, 내가 자바에서 정규식을 구현하는 방법을 몰라 원인 모르겠어? – Brett

답변

1

자바 스크립트에서 당신은 사용할 수 있습니다

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

그것이 /group_breaks 또는 /group_breaks/ 또는 /group_breaks.php

+1

예 ...... 우연히 '?'하하를 놓쳤습니다, 감사합니다! 만약 내가 * 일치하지 않는지 확인하고 싶다면? 처음에'! '를 붙일 수 있습니까? – Brett

+0

네, 물론 if (!/^ \/group_breaks (\ php | \ /)? $ /. test (location)) {...}'도 할 수 있습니다. 'regex.test' 메쏘드가'boolean'을 리턴하기 때문에 – anubhava

+1

고마워요! :) – Brett

2

문자열이 일치하는지 여부를 알려주는 부울을 반환하는 RegExp.test을 사용할 수 있습니다.

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

가 부정적 예측 내부에 정규식을 넣어 일치하도록 (\.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 
관련 문제