2014-03-06 2 views
1

이의 나는 내가 지금까지 너무 좋아정규식은

1asd23a 

311eed123ss 

같은 것들을 입력 해요로 다음과 같은 자바 스크립트

\d{1,3}[a-zA-Z]{1,3}\d{1,3}[a-zA-Z]{1,3} 

을 일치시킬 가정 해 봅시다 아니다; 하지만 전체 문자열이 입력 된 후에 유효하거나 유효하지 않다고 말하는 것이 아니라 문자열이 입력 될 때까지 유효 할 수 있는지 여부를 반환하고 싶습니다.

기본적으로 정규 표현식의 모든 세그먼트로 시작합니다.

1asd23 

311eed12 

은 여전히 ​​최종 양식으로 수정 될 수 있기 때문에 유효합니다. 시작 문자는 정규 표현식을 사용할 수 없도록 만드는 문자가 아닙니다.

나는 이것을 올바르게 설명하기를 바랍니다.

+0

그래서 텍스트 필드의'keyup'에 regex match를 bind하고 싶습니까? –

+0

그래,하지만 그 시점에서 문자열의 일부만을 가지고있을 수도 있습니다 – Matt

답변

1

정규식을 상당히 더 못하게 만들지 만, 하나의 옵션은 모든 이후 요소를 선택적으로 만드는 것입니다. 이후 요소는 이전 요소가 모두 존재할 경우에만 존재할 수 있도록 신중히 수행해야합니다. 그러면 여러 선택적 그룹을 중첩시킬 것입니다. 예 :

\d{1,3}([a-zA-Z]{1,3}(\d{1,3}([a-zA-Z]{1,3})?)?)? 

물론 최종 문자열을 입력하면 원래 정규식과 비교하여 유효성을 검사 할 수 있습니다.

+0

아, 이것이 제가 두려워했던 것입니다. 저는이 사실을 거의 가지고 있었으며, 아마도 더 기발한 존재라고 생각했습니다 :-) – Matt