【发布时间】:2020-05-30 09:46:29
【问题描述】:
我正在尝试在 Django 中编写以下验证代码: “大写字母只能从第一个单词的字母开始或仅当单词中的所有字母都是大写时才允许使用” 我一直这样做到现在,但它失败了,有人可以帮助我吗?
例如:
This is The GOOD day - acceptable
ThIS is THE gOOD day - not acceptable
我的代码:
RegexValidator(
regex='(^[A-Z][\sa-z0-9]+$)|(^([A-Z]\w*\s*)+$)',
message='Capital Letters are allowed only as first word letter or only if all letters in word are uppercase',
code='invalid_capitalisation'
)
【问题讨论】:
-
你可能只用
^[A-Z]检查第一个字符。或者^[A-Z][^A-Z]*$,如果在第一个大写字母之后可以有除大写字母之外的任何字符。 -
请用一些例子说明你想匹配什么,你不想匹配什么。如果每个单词都以大写字母开头(即标题大小写),你想匹配一个句子吗?还是只希望第一个单词的首字母大写?
-
我想检查单词中是否使用了大写字母,那么它应该是第一个字符,或者每个字符都应该是大写。例如:这是美好的一天 - 可以接受 这是美好的一天 - 不可接受
-
@Chase 我已经更新了示例
-
谢谢,@WiktorStribiżew,我昨天收到了关于低代表的通知,我就这么做了!