Django RegexField 仅限字母和数字

5 投票
3 回答
9621 浏览
提问于 2025-04-16 04:47

我需要在Django表单中使用一个正则表达式字段,只允许输入字母和数字,其他的都不行。我试过这样做,但没有成功:

myfield = forms.RegexField(label=("My Label"), max_length=31, regex=r'[a-zA-Z0-9]',
        error_message = ("This value must contain only letters and numbers."),

我对正则表达式不是很熟悉。你能告诉我我哪里做错了吗?还有怎么修正它?

3 个回答

0

你说的“没用”具体是什么意思?能不能说得更清楚一点?

我马上就能发现一个“错误”,就是它只接受一个字符。你在regex这个参数里缺少了重复的部分。试着在最后加一个*或者+(具体可以查看Python的re模块文档了解更多)。

5
regex=r'^[a-zA-Z0-9]+$',

这个规则只允许输入字母和数字,并且至少需要有一个符号。

7

这个正则表达式是:regex=r'[a-zA-Z0-9]',

它表示一个字母。

你想要多个字母吗?那就用重复的写法。

比如:regex=r'[a-zA-Z0-9]+',

关于正则表达式,有很多教程。你可以在网上搜索“正则表达式教程”。

撰写回答