2012-06-18 40 views
0

與這些範圍內開始的任何電話號碼更正:例如:正則表達式,測試電話號碼紅寶石

長度是很重要的,它應該包含在最後

550-559 
700-709 
770-779 

所以6位,我做到目前爲止:

\A(55[0-9])|(70[0-9])|(77[0-9])\d{6}\z 

如何修改此正則表達式正常工作?

回答

1
\A(55[0-9]|70[0-9]|77[0-9])\d{6}\z 
+0

感謝的人,在一個將它們組合爲解決__)) –

5

簡單的方法是:

/^(55|70|77)\d{7}$/ 
+1

這是很好的,但是你需要知道用'^ $'中的安全隱患紅寶石regexps。請參閱第7.6節:http://guides.rubyonrails.org/security.html#regular-expressions。改爲使用'\ A \ z'。 – Casper

+0

感謝,更簡單,更美麗)))) –

+0

@Casper這是一個有趣的點,但在這種情況下,我們匹配線,沒有驗證activerecord模型,所以^ $是更正確的。換句話說,text.scan(myregex)將正確行爲,而text.scan(yourregex)則不會。 – pguardiario