2016-07-21 9 views
0

レール4では、文字の間にドット(。)、ハイフン( - )、スラッシュ(/)、スペースのみを受け入れることができる英数字フィールドを検証する必要があります。Rails - 英数字フィールドの入力

例:AB123-GH345またはAB45.NH744またはKHJ3/SD34またはHJS23 JKA34

私は/^[0-9]+#$//^\d+([.,]\d+)?$//^[0-9]+#$/で試してみましたが、それは要件ごとに機能していません。

値は例に従って受け入れる必要があります。このフィールドの検証を手伝ってください。

+1

何に役立つのだろうか?その文字は、正規表現では特別な意味を持ちません。あなたは本当に私たちに十分な情報を与えていません。次の値は有効ですか? '' A'、 ''/'、' 'A/0''、' -NH744'、 '123AB-345GH'、' 'AB123.GH345.LM567' –

答えて

2

私は、これはあなたを助けるかもしれないと思う:

/^[A-Za-z0-9-\/\.\s]+$/ 

これはあなたが

AB123-GH345またはAB45.NH744を提供しているすべての例のために働いていましたまたはKHJ3/SD34またはHJS23 JKA34

?HJS23?JKA34)のような文字を挿入すると拒否されました。


更新

あなたは複数行のアンカーが、あなたはこのようにそれを使用することができますしたくない場合は、次の

/\A[A-Za-z0-9-\/\.\s]+\z/ 

あなたの正規表現コードを検証するために、このRubularサイトを使用することができます。

+1

ありがとうございました '/ \ A [A-Za-z0-9 - \/\。\ s] z/'はうまく動作しています。 –

0
  • これを試してみてください:

    /^[a-zA-Z\d\.\-\/# ]+$/ 
    
+0

を使用した後、 'ArgumentErrorのようなエラーです(提供された正規表現は複数行のアンカー(^または$)を使用しています ' –

+0

' 'multiline''オプションを* true *に設定できます(http://guides.rubyonrails.org/security.html#これらの '^'/'$'アンカーを有効にするには正規表現が必要ですが、本当にそれらが必要なのか疑問に思っています –

0

希望

^[a-zA-Z0-9\. /'\-]+$ 

この正規表現を試してみてくださいこれは何をするもので、あなたが試み正規表現では、 `#`である

関連する問題