2013-12-11 4 views
2

주어진 변수의 일부 문자열과 일치해야합니다. 변수가 있다고 가정하십시오.정규 표현식은 브라우저에서는 작동하지만 Node.js에서는 작동하지 않습니다.

var x = 'elseif testing'; 

이제이 문자열에서 "테스트"가치를 얻고 싶습니다. 그래서 썼다.

x.match(/^elseif(.*)/); 

늦은 나는 어떻게해야합니까 때로는 실현 문자열 :

x.match(/^else[\s+]if(.*)/); 

이 Node.js.에 브라우저에서 잘 작동하지만 :

var x = 'else if testing'; 

그래서 나는 일치 표현을 썼다 이유가 뭐야? double escapescharacter class없이

+1

주 - 그것을 시도, 그것은 같이 브라우저에서 동일하게 동작 node.js - 즉, else if와 else if t if는 일치하지만 elseif는 일치하지 않습니다. '+'변경자는 1 개 이상을 의미합니다. '*'수정자가 0 이상을 의미한다. – slebetman

+1

브라우저와 node.js 사이에는 차이가 없습니다. – damphat

답변

2

봅니다 :

x.match(/^else\s*if(.*)/i); 

또한 대소 문자를 구분 검색 i을 추가했습니다.

또한 [\s+]는 문자 그대로의 플러스로 간주됩니다 내부 character class+ (그리고 많은 다른 정규식 특수 문자) 이후 문자 + 일치합니다 유의하십시오.

0

당신이 명시 적으로 하나 또는 제로 공간을 일치하고자하는 경우 :

이 "브라우저의 경우에서 잘 작동"하지 않습니다
x.match(/^else\s?if(.*)/i); 
관련 문제