2010-06-09 2 views
0

양식에 사용자가 항목에 대한 설명을 입력 할 수있는 "설명 텍스트 영역"이 있습니다.유효성 검사를위한 정규식이 작동하지 않습니다.

양식을 제출하기 전에 javascript로 유효성을 검사합니다.

else if (!fld.value.match(desExp)){ 

그리고 desExp : 검증-단계의

하나는 이것이다

var desExp = /^\s*(\w[^\w]*){3}.*$/gm; 

설명은 특정 함께 시작되는 지금 내 문제는,이 설명은 제외하고 모든 경우에 잘 작동 스웨덴어 (å, ä, ö)의 성격.

이 늘 일 :

åäö hello world 

그러나이됩니다

hello world åäö 

모든 수정 사항은?

감사

+0

이 질문에 정규식과 특수 문자에 대한 매우 흥미로운 대답이 있지만 PHP로되어 있습니다. http://stackoverflow.com/questions/2580581/best-way-to-escape-and-create-a-slug –

답변

1
내가 같은 일을 할 폭 넓은 범주를 사용하여 상상하는 것

: 내가 오해, 당신은 단지 문자열이 있는지 확인 찾고 있어요 않는

/^\s*([\wåäö][^\w]*){3}.*$/gm; 
+0

고마워요 ...이 작품! –

1

최소 3 단어 문자? \ s *는 가능한 한 많은 공백 문자를 찾는다. 그런 다음 패턴 (\ w [^ \ w] )은 임의의 단어 문자 뒤에 0 개 이상의 단어가없는 문자가 뒤 따르게됩니다. {3}은 세 단어의 문자가 있다고 주장합니다. 그. 끝에있는은 나머지 문자열과 일치합니다.

제 이해력과 고장이 맞다면, 당신이 원하는 것은 바로 이것입니까?

/(\w\W*){3}/gm 

내부에 상관없이 3 단어 문자가있는 문자열과 일치합니다. 그것은 당신과는 약간 다릅니다. 첫 단어 앞에 공백 만 있으면됩니다.

그래서 : 나는 ... 관련

편집 사실, I found this question 그건 당신이 의도 여부 거라면 모르겠지만이 경우, 다만 저에게 알려 주시면 수정하겠습니다 계정에 그것을 복용, 당신이 뭔가를 할 수 있습니다 :

var desExp = /^\s*([\w\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][^\w\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*){3}.*$/gm; 

블록 [\w\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]는 단어 문자와 일치합니다 (UTF8 또는 라틴-1 중 하나를).

관련 문제