2011-09-02 3 views
1

텍스트 필드를 구문 분석하는 함수를 만들고 있습니다. 다음은 몇 가지 시나리오는 다음과 같습니다자바 정규식 일치

In: "about" 
Result: var keywords = "about" 

In: "type:page " (notice the space) 
Result: var types = ["page"]; 

In: "type:page about" 
Result: var types = ["page"], keywords = "about"; 

In: "type:page,event The Event" 
Result: var types = ["page", "event"], keywords = "The Event"; 

누군가 내가이 사용하는 정규식을 구문 분석하는 것입니다 방법으로 올바른 방향으로 날 포인트?

+0

'이벤트 유형 : 페이지, 이벤트'는 어떻습니까? 난 당신이 정규 표현식의 한 줄 대신 전체 기능을 작성해야한다고 생각합니다 – timdream

답변

1
 function inOut (input) { 
     var output = {}; 
     if (input.indexOf('type:') !== -1) { 
      output.types = input.replace(/^.*type:([^ ]+).*$/, '$1').split(','); 
      output.keywords = input.replace(/^(.*)type:([^ ]+)(.*)$/, '$1 $3'); 
     } else { 
      output.keywords = input; 
     } 
     return output; 
    } 

시험해주세요.

+0

대단히 고마워! – Matt