2014-10-17 2 views
0

웹 서비스의 입력으로 모바일 번호를 허용해야하지만 Joi 프레임 워크로 유효성을 검사하는 동안 다음 문제가 발생합니다.오류 : 패턴은 RegExp 여야합니다

조이는 말한다 : 검증

Error: pattern must be a RegExp 
    at Object.exports.assert (/home/gaurav/Gaurav-Drive/code/nodejsWorkspace/ragchews/node_modules/joi/node_modules/hoek/lib/index.js:524:11) 
    at internals.String.regex (/home/gaurav/Gaurav-Drive/code/nodejsWorkspace/ragchews/node_modules/joi/lib/string.js:107:10) 
    at /home/gaurav/Gaurav-Drive/code/nodejsWorkspace/ragchews/src/validators/userValidator.js:10:40 
    at Object.<anonymous> (/home/gaurav/Gaurav-Drive/code/nodejsWorkspace/ragchews/src/validators/userValidator.js:13:2) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.require (module.js:364:17) 

:

var userProfileValidation = function(){ 
    return { 
     payload : { 
      uid: Joi.string().required().alphanum().length(userConfigs.UID_LENGTH), 
      mobile_num: Joi.string().required().regex('^[0-9]*$').length(userConfigs.RMN_LENGTH) //for this guy 
     } 
    }; 
}(); 

내가 freeformatter에 정규식을 확인하고이어야 일부 입력에 대해 잘 작동하는 것 같다. 왜 조이가이 오류를 던지고 있는지 이해할 수 없습니다.

+0

은 어쩌면 당신은 /'패턴의 끝에'추가해야합니다 :

Joi.string().required().regex(/^[0-9]*$/) [...] 

... 대신 : 즉 :, 당신은 사용해야합니다'/^[0-9] * $ /' –

답변

4

실제로 문서화 here (link) 여기 정규식 패턴 기대하지 조이 틀 있지만 실제 정규식.

Joi.string().required().regex('^[0-9]*$') [...] 
+0

감사합니다. 바보 같은 실수. – guptakvgaurav

관련 문제