2009-08-20 1 views
1

나는 Jquery Validation을 사용하고 있습니다.사용자 이름이 문자로 시작되고 영숫자 만 포함되어 있는지 어떻게 확인할 수 있습니까?

현재, 나는 사용자 이름을 가지고, 내가이 사용자 이름에 대한 유효성을 검사 할 것은 :

  • 하지 빈
  • 가용성
  • 없음 공백, 나는이 방법을 추가

    $.validator.addMethod("nowhitespace", function(value, element) { 
        return this.optional(element) || /^\S+$/i.test(value); 
    }, " No white space please"); 
    
  • 영숫자

    $.validator.addMethod("alphanumeric", function(value, element) { 
        return this.optional(element) || /^[a-zA-Z0-9]+$/i.test(value); 
    }, " Alphanumeric. Only numbers and alphabet allowed"); 
    
  • 첫 번째 문자는 알파벳이어야하며 숫자 일 수 없습니다.

마지막 검증에서 멈추었습니다. 첫 글자의 유효성을 검사하는 정규식을 작성하는 방법은 알파벳이어야합니까?

BTW :

공백이없는 것 같습니다. 스크립트를 시도했는데 1 개의 공백이 허용되었지만 2 개의 공백은 허용되지 않았습니다. 이유는 무엇입니까?

+0

no-whitespace에 대한 정규 표현식이 처음에는 정확한 것 같습니다 ... ...? – Funka

+0

왜 패턴에'i'를 사용합니까? –

+0

jQuery/JavaScript는 [ALPHNUM]과 같은 정규식 표준 그룹 이름을 제공하지 않습니까? – TheJacobTaylor

답변

9

숫자 방법을 사용

/^[A-Za-z][A-Za-z0-9]+$/ 

.

문자와 문자가 하나 이상의 영숫자로 구성된 모든 문자열과 일치합니다. 단일 문자 사용자 이름은 허용되지 않는다고 가정합니다. 당신은 하나의 문자 사용자 이름을 허용하도록 패턴을 변경하려는 경우 :

/^[A-Za-z][A-Za-z0-9]*$/ 

이 방법을 첫 번째 문자에 대한 별도의 검사가 필요하지 않습니다. 덧붙여 말하자면, 이것은 영숫자 문자로 구성된 문자열이 정의에 의해 공백을 포함 할 수 없기 때문에 공백 검사의 필요성을 없애야합니다.

+0

이유를 알 수 있습니까? –

+1

이 답변은 똑같은 패턴으로 몇 초 만에 광산을 제쳤습니다. 그것이하는 일은 [A-Za-z]의 단일 문자가 필요하고 [A-Za-z0-9]의 하나 이상의 문자가 뒤따라야한다는 것입니다. 사용자 이름이 한 글자 만 허용하려면 "+"를 "*"로 변경할 수 있습니다. – Funka

+0

마술처럼 작동합니다. 고맙습니다. 최고의 답변 !! –

2
value.substr(0, 1).match(/[A-Za-z]/) != null 
+0

코드를 테스트하고 있습니다. Brb :) –

+0

음 .. 그 jquery 아니면 그냥 일반적인 자바 스크립트 방법인가요? –

+0

이것은 모두 기본 JS입니다. – ChaosPandion

관련 문제