2013-05-15 4 views
2

사용자가 휴대폰 번호를 올바르게 입력했는지 확인하려고합니다. 이 때문에 버그가있는 다음 정규 표현식을 작성했습니다. 휴대 전화 번호는 (선택 사항)으로 시작합니다. +일 수 있습니다 (선택 사항). 대괄호, 하이픈 (-). 알파벳 또는 다른 문자을 포함 할 수 없습니다. 일치해야JQuery 유효성 검사를 사용하여 연락처 번호 확인

jQuery.validator.addMethod("mobileNumber", function(value,element) { 
      return this.optional(element) || /(?:([+]))?[0-9]*/.test(value); 
}, "Please enter a valid Contact Number"); 

다음 입력, + 1-222

(+1)

222

1,222

2,222

02-222

하지만 일치하지 않아야합니다.

1 + 222

AAA

AA12

2.2.2

어떻게 위의 기준에 대한 정규식을 작성해야?

감사합니다.

+0

이 봐 [여기]를 가지고있다 [1]. 이 도움이 될 수 있습니다 [1] : http://stackoverflow.com/a/123681/2266001 –

+0

휴대 전화 번호 규칙 문제는 이미이 플러그인의'추가-methods.js' 파일에 내장 된 일이야? 참조 : http://bassistance.de/jquery-plugins/jquery-plugin-validation/ – Sparky

+0

나는 그런 규칙이 있다는 것에 대해 몰랐다. 위의 기준을 충족 시키는가? – Shrey

답변

3

는 다음을 시도해보십시오

^(\+|\(\+)?\d+(\-|\)|\s)+?\d+ 

여기에 작업을 참조하십시오 : http://regexr.com?34sm1

+0

정말 고마워 .. 내가 필요로하는 모든 경우를 다루고있다 .. =] – Shrey

+0

+1 for link .... –

0
// true 
/^(\+[0-9]{1,2}\-|\(\+[0-9]{1,2}\)|\+[0-9]{1,2}|[0-9]{2}\-|)[0-9]+$/.test('+1-222'); 
/^(\+[0-9]{1,2}\-|\(\+[0-9]{1,2}\)|\+[0-9]{1,2}|[0-9]{2}\-|)[0-9]+$/.test('(+1)222'); 
/^(\+[0-9]{1,2}\-|\(\+[0-9]{1,2}\)|\+[0-9]{1,2}|[0-9]{2}\-|)[0-9]+$/.test('+1222'); 
/^(\+[0-9]{1,2}\-|\(\+[0-9]{1,2}\)|\+[0-9]{1,2}|[0-9]{2}\-|)[0-9]+$/.test('01-2222'); 
/^(\+[0-9]{1,2}\-|\(\+[0-9]{1,2}\)|\+[0-9]{1,2}|[0-9]{2}\-|)[0-9]+$/.test('86-2222'); 
/^(\+[0-9]{1,2}\-|\(\+[0-9]{1,2}\)|\+[0-9]{1,2}|[0-9]{2}\-|)[0-9]+$/.test('2222'); 

// false 
/^(\+[0-9]{1,2}\-|\(\+[0-9]{1,2}\)|\+[0-9]{1,2}|[0-9]{2}\-|)[0-9]+$/.test('1+2342'); 
/^(\+[0-9]{1,2}\-|\(\+[0-9]{1,2}\)|\+[0-9]{1,2}|[0-9]{2}\-|)[0-9]+$/.test('+123-222'); 
/^(\+[0-9]{1,2}\-|\(\+[0-9]{1,2}\)|\+[0-9]{1,2}|[0-9]{2}\-|)[0-9]+$/.test('AAA'); 
/^(\+[0-9]{1,2}\-|\(\+[0-9]{1,2}\)|\+[0-9]{1,2}|[0-9]{2}\-|)[0-9]+$/.test('6786-2342'); 
관련 문제