2012-06-15 2 views
1

C# 및 PHP와 같은 다른 언어에서 어떻게하는지 알면서도 정규식 일치 자바 스크립트 버전으로 정말 고심하고 있습니다.Javascript RegExp를 사용하여 "{캐릭터}"일치하기

나는 {ANYCHARACTERS}과 일치하고 싶습니다.

이 있어야합니다

  • {을 시작
  • 끝에 } 사이
  • 1 개 이상의 문자 (모든 문자, 기호 등) 그래서

멀리 나는 다음과 같습니다 :

<script type="text/javascript"> 

// The string that I want to perform a match on 
var str = "{ASTRINGINHERE£$%^&*éáó}"; 

// Mt Matching expression 
var patt1 = ^/{(.*){1,*}/}$/i; 

// Write the matched result 
document.write(str.match(patt1)); 

</script> 

답변

3

은 문자열의 시작/문자열 종료 코드는 정규 표현식 내부에 속한다. 또한 반복 코드가 불필요하게 복잡합니다. 마지막으로, 어떤 문자와도 일치 할 때 대소 문자를 구분할 필요가 없습니다. 이 작업을 수행해야합니다 :

patt1 = /^{.+}$/ 
7

작성된대로 현재 패턴은 javascript 구문 오류가 발생합니다.

  • 당신은 실제 정규 표현식 밖에서 ^ 캐릭터를 가지고 여기에 내가 볼 수있는 문제입니다.
  • 두 개의 정규식 끝 문자 (/)가 있습니다.
  • {1,} 부분을 삭제 한 이유에 대한 @ kopischke의 답변을 참조하십시오.

이은 당신의 문제를 해결해야합니다

/^{(.+)}$/i 
+0

이 경우 중괄호는 이스케이프가 필요하지 않습니다. – kopischke

+0

@kopischke 잘 부탁드립니다. 편집 됨. 감사! – benekastah

+0

역방향 upvote;)? – kopischke

관련 문제