2011-07-12 11 views
0

空白を含むものを拒否するテキストフィールドのフォーマット検証を作成しようとしています。誰かがRegEx構文で私を助けることができますか?これは私が試したことです:Ruby形式の検証[No Whitespace]

no_whitespace = /\A[\S]\z/i 

validates :customurl, :format => { :with => no_whitespace } 

RegExについて私はプログラミングに慣れていません。どんな助けでも大歓迎です。ありがとう!

答えて

3

はこれを試してみてください:最初(^)最後の文字列の($)、および少なくとも1つの文字から何の空白文字を指定するべきではありません

no_whitespace = /^[\S]+$/ 

+0

すごい!私はそれをしたと思います! – pruett

+1

悪意のあるユーザーが改行を含むテキストを送信しようとする場合にのみ、 '/ \ A \ S + \ Z /'を使用するべきです。角括弧は必要ありません。 –

+1

'^'は行の先頭であり、文字列ではありません。同様に、 '$'は行の終わりであり、文字列の終わりではありません。つまり、OPの正規表現は文字列全体( '\ A'と' \ Z'を使って)で動作するはずです。 OPが '+ 'を含むのを忘れたことだけです。だからこれはOPのために働いていたでしょう – Zabba

2

この試してみてください:あなたは正規表現を形成し、テストを支援するために

no_whitespace = /[\S]*/ 

使用Rubularを。

+0

うーん...うまくいかなかったようです。私はまだそれにスペースを入れた値を渡すことができました。 – pruett

+0

あなたはそうです。 Dave Isaacの答えはうまくいくでしょう。 –

+0

+1ルービルが揺れるので! –