2012-03-29 6 views
3

숫자가 수신자 부담 전화가 아니라 유효성 검사 도우미를 통해 설정하는 방법을 잘 모르는지 확인하려고합니다.번호가 무료가 아닌지 확인하는 방법은 무엇입니까?

는 여기에 지금까지 수행 한 작업은 다음과 같습니다

validates :local_phone, :format => { :with => /^(\+?1)?(8(00|55|66|77|88)[2-9]\d{6})$/, :message => "cannot be a toll-free number" } 

을하지만, 수는 수신자 부담 전화임을 확인합니다. 나는 그것을 통해 전환하려고했습니다! 그러나 아무 소용이 없습니다. 자신의 validates_with 클래스를 작성하기 전에 주위에 물어 보는 것이 가장 좋을 것이라고 생각했습니다.

+0

'!'를 정규식에 추가 했습니까, 아니면 원래 있던 것이 었습니까? 나는'?!'이 특별한 것을 의미한다고 생각하지 않는다. (그들이 개봉 괄호 뒤에있는 첫 번째 문자가 아니라면) 현재는 리터럴이있는 숫자 만 일치시킬 것이다. –

+0

죄송합니다 - 그! 원래 거기에 있지 않았다 - 나는 그것을 추가했다. – Northband

+0

내 질문에 대한 답변 - local_phone, : format => {: with =>/^ (?! (+? 1)? (8 | 00 | 55 | 66 | 77 | 88) [2-9] \ d {6})). {10} $ /, : message => "무료 전화 번호가 될 수 없습니다."} – Northband

답변

1

숫자가 무료가 아닌지 확인하는 방법은 무엇입니까? 그 번호로 전화하여 다음을 찾으십시오 :

그는 이미 답변을 얻었습니다 (위의 설명 참조). 나는이 질문이 "Unsweredered"섹션에 나타나지 않도록 을 다시 게시하여입니다.

validates :local_phone, :format => { 
    :with => /^(?!(+?1)?(8(00|55|66|77|88)[2-9]\d{6})).{10}$/, 
    :message => "cannot be a toll-free number" } 
+1

그대로 사용하면 "Invalid regular expression"오류가 발생합니다. –

+0

이것을 시도하십시오 :''/^(\ +? 1)? (8 | 00 | 44 | 55 | 66 | 77 | 88) [2-9] \ d {6}) /''. – user1429980

관련 문제