2012-05-05 12 views
1

私はこのルビー正規表現を使用して、ユーザがカンマで区切られたメタキーワードを入力することを検証します。正規表現のルビ、制限付きのキーワードと特殊文字

validates_format_of :tags, :with => /^\s*[A-Za-z0-9]+(\s*,\s*[A-Za-z0-9]+)*\s*$/u 

私はこの正規表現に多くの2つの条件を追加したい:

  • は4つのキーワードにキーワードを制限します。

  • p{L}\s\p{N}この正規表現には、この2つの条件を追加するにはどうすればよい

ñáéíóúのようなスペイン語の文字を追加しますか? ありがとう

答えて

1

こんにちは私はこの正規表現がトリックをすると思います。

/^(([^,]+),){0,3}([^,]+)$/ 

あなたはこのようなあなたの検証を置くことができます。

validates_format_of :tags, :with => /^(([^,]+),){0,3}([^,]+)$/ 

のかvalidates方法

validates :tags, format: {with: /^(([^,]+),){0,3}([^,]+)$/} 

どちらも同じ

NOTEを行います:あなたはRubularをチェックする必要があり、それは素晴らしいRubyの正規表現のオンラインエディタです

+0

ありがとうございます@rogeliog。あなたの正規表現は最初の問題を解決する**キーワードを4つのキーワードに制限する**しかし、私は文字 'ñáéíóú'に2番目の問題があります。どのようにこの文字を追加できますか?ありがとうございました – hyperrjas

+0

印刷可能なすべての文字が許可されますか? 「昏睡」以外のすべてと同じように?このようにすることができます。/(([^、] +)、){0,3}([^、] +)$/' – rogeliog

+0

完璧な素晴らしい!それはうまくいく:D。どうもありがとうございました! – hyperrjas