Django RegexField Только буквы и цифры

3

Мне нужно regexfield в форме 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 ответа

7

регулярное выражение = г '[A-Za-Z0-9]',

Это одна буква.

Вам нужно больше одного письма? Затем используйте повтор

регулярное выражение = г '[A-Za-Z0-9] +,

Существует множество руководств по регулярным выражениям. Пожалуйста, зайдите в Google для "Регулярного выражения".

  • 0
    Я сделал Google для этого, следовательно, решение, которое я придумал. Это явно было неправильно, хотя. Используя ваше решение: regex = r '[a-zA-Z0-9] +', я все еще могу использовать подчеркивание, есть идеи, почему?
  • 1
    Так как. Ваш шаблон не указывает целую строку. Вам нужны ^ и $ . «Я сделал Google для этого». Тогда продолжай пытаться. Есть хорошие учебники, которые помогут вам.
3
regex=r'^[a-zA-Z0-9]+$',

это будет принимать только буквы и цифры и потребует хотя бы одного символа

0

Что вы подразумеваете под словом "это не сработало"? Можете ли вы более конкретно?

"Ошибка", которую я могу сразу заметить, заключается в том, что он принимает только один символ. Вам не хватает повторения в аргументе regex. Попробуйте добавить * или + в конец (подробнее см. Документацию модуля python re).

  • 0
    Это не работает означает, что форма не проверяется правильно. Как я ввожу «asdasdf», и он по-прежнему выдает ошибку проверки.
  • 0
    Я понял. Мне нужен был знак моркови и доллара в конце: regex = r '^ [a-zA-Z0-9] + $',
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню