2013-10-07 77 views
0

什麼是驗證輸入字符串的正確方法,使其只能包含0-9,a-z和'。'?第一個和最後一個字符不能是'。'。使用格式和正則表達式進行Rails驗證

我目前正在使用;

validates_format_of :lagrange, :with => /[0-9a-z\.]/ 

,並已嘗試過很多變種,但似乎無法弄清楚這一點。

回答

0

使用零寬度斷言先行

/^(?!.*[.]$)(?![.])[a-z0-9.]+$/ 
    --------- 

+是匹配1至多次

^標誌着beginnig和$標記串/行的端部的量詞..

+0

太棒了!你的解決方案有效你回答得太快了,我還不能將它標記爲解決方案! 我會去閱讀零寬度斷言向前看,然後回來。 – mvanio

+0

爲了解決我的問題,編輯第一個和最後一個字符不是'。',我會這樣做嗎? '/^[^。](?!。* [。] $)[a-z0-9。] + $ /' – mvanio

+0

@ObregonCornsnook看到我的編輯.. – Anirudha

0

字邊界是你的朋友:

/\A\b[a-z\d.]*\b\z/ 

爲什麼?