私は今、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. uipickerview rtl constraints
- 4. Storyboard with Constraints - iOS
- 5. OpenRasta Route Constraints
- 6. `uvm_do_with with inline constraints
- 7. Xcode constraints Stack Views
- 8. docker swarm compose constraints
- 9. Constraints Always Needed - iOS(Swift)
- 10. AutoLayout ConstraintsまたはStackView
- 11. Redshift Constraints(主キーと外部キー制約)
- 12. SQLiteでADD CONSTRAINTSをサポートするには?
- 13. レールのRegex制約
- 14. Java Constraints Library(JCL)の問題:追加の表現方法は?
- 15. Js Regex to Python regex
- 16. 「String Regexとループ」と「Regex」
- 17. RegEx
- 18. RegEx:$
- 19. regex
- 20. RegEx
- 21. regex
- 22. REGEX
- 23. RegEx
- 24. Regex
- 25. Regex -
- 26. REGEX
- 27. PHP RegExをJavaScriptに変換RegEx
- 28. AndroidのConstraintsレイアウトで白い画面を表示するWebViewとloadData
- 29. MySQLコンセプトの "Check CONSTRAINTS"が動作していません。以下の私の表
- 30. Constraints(IOS)のみを使用してカスタムUIViewを初期化する
このw.r.t.ですドメインクラスのフィールド?バリデーターを使ってみましたか? http://grails.org/doc/latest/ref/Constraints/validator.html –
はい、そうですが、バリデーターを使用するとラインで無駄になると思います。正規表現検証を使う方がはるかに簡単だと思います。使用方法を混乱させるだけです。 – antibry
すべてのインスタンスで操作を行う場合は、操作自体は非常に効率的です。また、regexは他の場所と同じように動作します。とにかく、コード例がありますか?サンプルコードを見ずに問題を解決するのは難しいです。 –