2012-04-26 5 views
1

내 사이트 (livevalidation.com)에서 실시간 유효성 검사를 사용하고 있습니다. 새 줄/줄 바꿈/문자 반환을 허용해야하는 텍스트 영역이 있지만 최선의 노력에도 불구하고 비참하게 실패하고 있습니다. \ n \ r \ v \ s \ S를 \ escape와 함께 사용하지 않고 시도했습니다. 어떤 제안을 크게 감상 할 수자바 스크립트 정규식에 새 줄 문자 허용

my_notes.add(Validate.Format, { pattern: /^[a-zA-Z0-9ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïñòóôõöøùúûüýÿ\.\,\-\/\']+[a-zA-Z0-9ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïñòóôõöøùúûüýÿ\.\,\-\/\' ]+$/i }); 

:

이 위의 문자를 사용하지 않고 내 코드입니다.

+2

와우; 그것은 꽤 정규식입니다. 그것은 무엇을 의미합니까? –

+1

문자 클래스에서 HTML 엔티티를 사용할 수 없습니다. # 192 대신; \ xc0을 사용하십시오. 악센트 부호가 붙은 문자 À도 작동합니다. –

+0

포인터를 주셔서 감사합니다, 조정에 대해 볼 수 있습니다. 그것은 너무 보전되지 않고 입력 특수 문자를 허용해야합니다. 따라서 사람들은 악센트 등으로 이름을 입력 할 수 있습니다. –

답변

0

/m 한정자를 사용하면 패턴 끝의/i가 여러 줄에 걸쳐 일치 할 수 있습니다. 대신 try/mi를 사용하십시오.

+0

트릭을 한 것으로 보이는 많은 감사! 감사합니다 –

+1

이것은 실제로 'm'이하는 것이 아닙니다. 'm'은'^'와'$'를 각각 라인의 시작과 끝과 일치시킵니다. "여러 줄에 걸쳐 일치"는 줄 바꿈 ('\ s'와 같은)과 일치하는 것이 있으면'm'의 유무와 관계없이 가능합니다. 그래서 패턴이 지금하는 일은 라인 중 하나가 올바른 포맷 (다른 라인은 임의의 문자를 포함 할 수 있음)을 가지고 있는지 확인하는 것입니다. David Gorsline이 질문에 대한 논평에서 실제 문제를 발견했다고 생각합니다. –