2012-10-08 3 views
2

나는 프로젝트 포트폴리오 인 사이트를 구축 중입니다. 다음/이전 프로젝트로 넘어갈 수있는 페이지 매김이 있습니다.RegEx를 사용하는 와일드 카드 URL에 대한 JavaScript .search()

프로젝트를 방문 할 때 일부 애니메이션을 실행하고 싶지만 프로젝트를 탐색 할 때는 그렇지 않습니다.

내 계획은 당신이 다른 프로젝트의 프로젝트에 왔는지 알기 위해 리퍼러 URL을 사용하여 애니메이션을 실행하지 않는 것입니다. 하지만 RegEx가 좋지 않아 문제가 있습니다. 여기

, 나는

var refURL = document.referrer; 
if(refURL.search('http://www.example.com/work/digital/*') > 0) { 
    // Do not run animation 
} else { 
    // Run animation 
} 

중요한 것은, "http://www.example.com/work/digital/"FALSE해야한다는 것입니다 할 (의사 코드)를하고 싶은 것입니다 'http://www.example.com/work/digital/*'은 TRUE 여야합니다.

그럼 RegEx가 어떻게해야합니까?

감사합니다. 당신이 (.+) 일치 1 이상 반면 indexOf()

refURL.indexOf("http://www.example.com/work/digital/"); 

if(refURL.indexOf("http://www.example.com/work/digital/") > -1) { 
     // Do Your Stuff 
} 
+0

은 * something.html 또는 something.php가 될 것입니까? –

+0

아니요 항상 디지털 일 경우 http://www.example.com/work/digital/abc/ 또는 http://www.example.com/work/digital/xyz/ –

+0

이 될 수 있습니다. 내가 사용하는'regex'를 사용할 필요가 없다. 당신은'javascript'의'split()'메소드를 사용하여 마지막 8 문자가'digital /'인지 확인 할 수 있습니다. http://www.w3schools.com/jsref/jsref_split.asp –

답변

1

(.*) 일치하는 0 개 이상의 문자를 사용할 수있는 다른 방법으로

var refURL = document.referrer; 
if(refURL.search('http://www.example.com/work/digital/(.*)') > 0) { 
    // Do not run animation 
} else { 
    // Run animation 
} 

- :

+0

실제로 작업하려면> = 0이어야합니다. 앞으로 귀하의 답변을 업데이트하십시오. –

+0

물론, 미안 해요! :) –

+0

http://www.example.com/work/1234/ 또는 http://www.example.com/work/56/이라고 말하면됩니다. 어떻게 감지 할 수 있을까요? /^http:\/\/www.example.com\/work\/(\d{1}})/? –

2

난 당신이 찾고있는 생각 문자

또한 JavaScript의 RegExp는 t, 그래서 그냥 자세한 내용은 방문하십시오

var exp = /pattern/modifiers 

을 입력 묶어야해야합니다 http://www.w3schools.com/jsref/jsref_obj_regexp.asp

문제에 대한 나의 생각이 같은 시도하는 것입니다

:

var refURL = document.referrer; 
if (refURL.search(/^http:\/\/www.example.com\/work\/digital\/(.+)$/i) >= 0) { 
    // Do not run the animation 
} else { 
    // Run the animation 
} 
+0

당신은 디지털 후 무엇을 캡처해야하지 않는 한, 괄호가 필요하지 않습니다 – mrk

+0

좋은 대답도, 내가 투표했습니다. –

0
var re = /^http:\/\/www.example.com\/work\/digital\/.+$/i; 
console.log('http://www.example.com/work/digital/x'.search(re)); 
console.log('http://www.example.com/work/digital/'.search(re)); 
0

정규식과 자바 스크립트를 사용 할 수 있습니다

var searchin = item.toLowerCase(); 
var str = "*abc*"; 
str = str.replace(/[*]/g, ".*").toLowerCase().trim(); 
return new RegExp("^"+ str + "$").test(searchin);