정규 표현식에 유효성을 설정한 항목이 빈 칸이라도 통과할 수 있기를 바랍니다

2082 단어 RubyRails

개시하다


전화번호와 메일 주소 등 입력 값의 형식 검사에서 정규 표현식을 사용할 수 있다.
지정한 문자열, 수열 이외의 값을 입력하면 확인됩니다.
이번에는 임의 입력 항목의 정규 표현이나 빈 칸을 지정해 검증하기를 바란다.

발리 번호로 전화해 보세요.


이번에는 전화번호를 예로 들면, 우선 전화번호에 유효기간을 걸어 보자.

validates :phone_number, format: { with: /\A\d{10,11}\z/ }
이것은 정규 표현식으로 연결 문자가 없는 10자리나 11자리의 반각 숫자를 입력하라는 뜻이다.
이번에는 전화번호를 임의로 입력하고 싶어서 사진이 없어요. 이러면 될 것 같아서...

문제가 생기다


지정한 정규 표현식에서의 검증이 돌파되었고 입력란이 공백이 되면 검증이 끊깁니다!

까닭


정규 표현식으로 검증하면 빈 칸 (nil) 이라도 정규 표현식 이외의 입력을 받아들일 수 없을 것 같습니다.

해결 방법 중 하나


지도 교수님께 물어보고 맞춤형 방법을 썼어요.
'빈 자리나 10자리, 11자리의 반각 숫자'를 만드는 사용자 정의 방법이 있다고 하는데, 사용자 정의 방법을 조사하면 매우 번거롭다.
↓ 사용자 정의 방법의 참고문
https://qiita.com/h1kita/items/772b81a1cc066e67930e
그래서 다른 방법이 있는지 스스로 고민해 반복적으로 실험한 결과 아주 간단한 해결책이 발견됐다.

해결 방법 2


다음 allow단지 진짜를 첨가할 뿐이다.
validates :phone_number, format: { with: /\A\d{10,11}\z/ }, allow_blank: true
이것은 문자와 같이 빈 칸도 된다는 뜻이다.
이렇게 되면 전화번호를 입력하지 않아도 검증을 통과할 수 있다!

총결산


정규 표현식이나 빈 칸의 검증을 통과할 때allow를 입력하십시오blank:진짜를 추가하면 돼요.

좋은 웹페이지 즐겨찾기