2012-03-11 4 views
0

문자열에서 데이터를 추출하고 싶지만 정규 표현식을 사용하는 방법을 모르겠습니다.
문자열은 다음과 같습니다자바 스크립트 에서이 정규식을 작성하는 방법?

validate[required,maxSize[255],....] 

'....'그것이 아마 다른 숫자와 문자를 의미합니다. 그래서 255 값을 추출하는 데 사용해야하는 정규식은 무엇입니까? (최대 크기 값).

답변

0

당신이 정말로 게으른 단순히 당신이 당신이 안전하게 번만 발생합니다 알고하지 않는 것이 훨씬 더 열심히, 더 될 것입니다 내부 validate[...]의 확인하려면 /maxSize\[(\d+)\]/

> /maxSize\[(\d+)\]/.exec('validate[required,maxSize[255],foo]')[1] 
'255' 

에 일치 할 수있는 문자열에 따라 - 제대로 NES 같은 일을 일치 할만큼 강력하지 않은 언급 한 제한 사항이 허용되지 않으면

> /validate\[[^\]]*maxSize\[(\d+)\].*\]/.exec(
    'validate[required,maxSize[255],foo,bar]')[1] 
'255' 

, 당신은 정규 표현식에 함께 할 수 없습니다 내부에 추가 [..] 블록 없을 것 테드 브래킷. 전체 유효성 검사 규칙을 구문 분석하려는 경우 적절한 구문 분석기 사용을 고려하십시오. 이 경우 먼저 validate[을 검색 한 다음 다른 문자를 하나씩 처리하여 validate[...] 부분을 추출합니다. [] 번 발생하면 첫 번째 문이 닫힐 때를 확인합니다. 그런 다음 해당 괄호 사이에 문자열을 구분 기호로 ,을 사용하고 을 입력 한 다음에 이미있는 파서 또는 정규식을 사용하여 길이를 추출합니다. 파서를 꽤 재사용 할 수 있기 때문에 나는 그 파서와 함께 갈 것이다. 심지어 문자열/정수 대신에 전체 유효성 검사 규칙 (여러 매개 변수가있는 것조차도)에 대해 멋지게 구조화 된 객체를 제공 할 수도 있습니다.

+0

maxSize \ [(\ d +) \]이 정도면 충분합니다. – Dabbas

관련 문제