当前位置: 首页 > 面试题库 >

如何使Django表单字段仅包含字母数字字符

常培
2023-03-14
问题内容

我有这个模特

name = models.CharField(max_length=50, blank=True, null=True)
email = models.EmailField(max_length=50, unique=True)

我希望用户在两个字段中都不能使用字母数字以外的任何其他字符。

有什么办法吗?


问题答案:

您将使用验证器来限制字段接受的内容。ARegexValidator可以在这里实现窍门:

from django.core.validators import RegexValidator

alphanumeric = RegexValidator(r'^[0-9a-zA-Z]*$', 'Only alphanumeric characters are allowed.')

name = models.CharField(max_length=50, blank=True, null=True, validators=[alphanumeric])
email = models.EmailField(max_length=50, unique=True, validators=[alphanumeric])

请注意,已经有一个validate_email验证器可以为您验证电子邮件地址。上述alphanumeric验证器将不允许使用有效的电子邮件地址。



 类似资料:
  • 问题内容: 我正在尝试使用以下命令选择MySQL中仅包含字母数字字符的所有行: 但是,它将返回所有行,而不管它们包含非字母数字字符的事实。 问题答案: 试试这个代码: 这样可以确保所有字符都匹配。

  • 问题内容: 我正在尝试验证我的字符串是否与模式匹配。也就是说,完整的字符串可以写为该模式。但是,如果有任何子字符串匹配该模式,则返回。(如回报,这是我不想在这个例子中,我宁愿验证,整个字符串只含有少量拉丁字母)。 问题答案: 您可以使用 开始 和 结束 标记,并分别指示开始,在您的正则表达式模式的字符串的结尾。这样,您可以使表达式仅匹配整个字符串,而不匹配任何子字符串。在您的情况下,它将如下所示:

  • 问题内容: 我只想在我的姓名字段中输入字母作为输入。 我已经尝试过使用matchs方法,但是不幸的是出了点问题,并且抛出了异常。 还有其他检查方法吗? 问题答案: 您可以尝试使用此正则表达式

  • 问题内容: 如何在mysql中选择仅包含大写字符的字段或不包含任何小写字符的字段? 问题答案: 您可能需要使用区分大小写的排序规则。我相信默认值不区分大小写。例: 然后: 如果您不想在整个表中使用区分大小写的排序规则,则也可以使用其他答案中建议的@kchau子句。 让我们尝试使用不区分大小写的排序规则的表: 这不能很好地工作: 但是我们可以使用子句将名称字段整理为区分大小写的整理:

  • 问题内容: 在JS中,我使用了以下代码: 但是我不知道如何在PHP中做到这一点。 问题答案: 使用preg_match()。

  • 问题内容: 什么是最好的纯Python实现,以检查字符串是否包含字母表中的任何字母? 哪里会因为没有字母而返回,而会因为有了字母而返回。 问题答案: 正则表达式应该是一种快速的方法: