>

Yup으로 전화 번호를 확인하려고합니다 :

phone: Yup.number()
  .typeError("That doesn't look like a phone number")
  .positive("A phone number can't start with a minus")
  .integer("A phone number can't include a decimal point")
  .min(8)
  .required('A phone number is required'),

.min(8)  숫자가 8 이상인지 확인합니다. 8 를 입력하면됩니다  통과 할 것이다. 어떻게 8자를 요구할 수 있도록 1000 0000  통과하겠습니까?

  • 답변 # 1

    안녕하세요 지금 당신과 같은 문제를 해결하고 가능한 해결책을 찾았습니다.

    정규식과 일치하는 문자열로 전화 번호 확인

    const phoneRegExp = /^((\\+[1-9]{1,4}[ \\-]*)|(\\([0-9]{2,3}\\)[ \\-]*)|([0-9]{2,4})[ \\-]*)*?[0-9]{3,4}?[ \\-]*[0-9]{3,4}?$/
    phoneNumber: Yup.string().matches(phoneRegExp, 'Phone number is not valid')
    
    

    다른 정규식을 검색하고 확인할 수 있습니다. 이 기사에서 Regex를 사용했습니다 https://www.sitepoint.com/community/t/phone-number-regular-expression-validation/2204

  • 답변 # 2

    이 방법을 사용하면 도움이 될 수 있습니다 .

    모바일 : Yup.string (). matches (/ ^ [6-9] \ d {9} $/, {message : "유효한 숫자를 입력하십시오.", excludeEmptyString : false})

  • 답변 # 3

    Simple React Validator에서

    전화 번호 확인 정규식은

    /^(\+?\d{0,4})?\s?-?\s?(\(?\d{3}\)?)\s?-?\s?(\(?\d{3}\)?)\s?-?\s?(\(?\d{4}\)?)?$/
    
    

    <시간>

    // index.js
    const yup = require('yup');
    const { rePhoneNumber } = require('./yup-phone')
    const schema = yup.string().phone()
    const phone = '+911234567890';
    console.log('Is Valid? ', rePhoneNumber.test(phone)); // Is Valid? true
    schema.validateSync(phone);
    
    

    <시간>

    // yup-phone.js
    const yup = require('yup');
    const rePhoneNumber = /^(\+?\d{0,4})?\s?-?\s?(\(?\d{3}\)?)\s?-?\s?(\(?\d{3}\)?)\s?-?\s?(\(?\d{4}\)?)?$/;
    module.exports.rePhoneNumber = rePhoneNumber
    yup.addMethod(yup.string, "phone", function() {
      return this.test("phone", "Phone number is not valid", value =>
        rePhoneNumber.test(value)
      );
    });
    
    

관련 자료

  • 이전 vba - 첨부 파일에서 텍스트 검색
  • 다음 Jupyter Notebook (Python 3) 용 작동하는 rosbag 패키지 설치