私は今、grailsプロジェクトに取り組んでいます。私は望んでいたデータをフィルタリングするのに苦労しています。すべての文字と数字(大文字と小文字)、およびキーボード上のすべての特殊文字(@ * $ &#)を受け入れることができるフィールドがあります。数字と文字の組み合わせ(0925abc)または文字、数字、特殊文字の組み合わせ(0925abc?> <)の場合にのみ、入力を受け入れます。純粋な文字(adCbT)、純粋な数字(0383)または純粋な特殊文字(@#$> _ + - )の場合、システムは入力を拒否します。これはgrailsの正規表現の制約で可能ですか?あなたの知識を共有してくれてありがとう。regex constraints validation-grails
2
A
答えて
2
あなたは自分のcontraintsに合った正規表現を探しているのであれば、
'.*([a-zA-Z][[email protected]*$&#]+|[0-9][[email protected]*$&#]|[@*$&#][0-9a-zA-Z]).*'
のようなものは、トリックを行う必要があります。入力時に、ある文字クラスから別の文字クラスへの遷移が少なくとも1つ存在することを確認します。否定先読みで
は、3つの用語が入力1つの文字クラスからのみcharectersから構成されていないことを確認してください'^(?![a-zA-Z]+$)(?![0-9]+$)(?![@*$&#]+$).+$'
を維持するためにも、少し簡単です。ここ
は、式をテストするためにいくつかのコードです:
def ok = ['asdasd90','90asdas','asd#sdfsd9','asd9sdf','908787#@']
def nok = ['asdewSDFDSFasd','23803','@*$&#']
def expression = '^(?![a-zA-Z]+$)(?![0-9]+$)(?![@*$&#]+$).+$'
ok.each { value ->
assert value.matches(expression)
}
nok.each { value ->
assert !value.matches(expression)
}
関連する問題
- 1. regex validation - grails constraints
- 2. ActiveRecord + postgresql + data constraints
- 3. OpenRasta Route Constraints
- 4. AutoLayout ConstraintsまたはStackView
- 5. Java Constraints Library(JCL)の問題:追加の表現方法は?
- 6. 「String Regexとループ」と「Regex」
- 7. Regex -
- 8. RegEx:$
- 9. regex
- 10. RegEx
- 11. Symfony2の検証制約 'Symfony \ Component \ Validator \ Constraints \ MaxLength'が見つかりません
- 12. PHP RegExをJavaScriptに変換RegEx
- 13. regex replace
- 14. multiline regex
- 15. Grep Regex:
- 16. Regex help
- 17. Regex translation
- 18. Rails 3 regexに基づくルーティング
- 19. regex find links
- 20. php email regex
- 21. Visual Studio Regex '?'
- 22. RegEx invalid quantifier
- 23. C#Regex Help
- 24. Collaborative RegEx Development
- 25. regexのヘルプ
- 26. VBNet RegExパターン
- 27. javascript regex match^[^#]?
- 28. emacs space regex search
- 29. preg_match_all regex subdomains
- 30. Apache regex matching
このw.r.t.ですドメインクラスのフィールド?バリデーターを使ってみましたか? http://grails.org/doc/latest/ref/Constraints/validator.html –
はい、そうですが、バリデーターを使用するとラインで無駄になると思います。正規表現検証を使う方がはるかに簡単だと思います。使用方法を混乱させるだけです。 – antibry
すべてのインスタンスで操作を行う場合は、操作自体は非常に効率的です。また、regexは他の場所と同じように動作します。とにかく、コード例がありますか?サンプルコードを見ずに問題を解決するのは難しいです。 –