Найти - Пользователи
Полная версия: Как запретить ввод кириллицы или убрать привязку к регистру.
Начало » Python для новичков » Как запретить ввод кириллицы или убрать привязку к регистру.
1
KOMn
Доброго времени суток! Подскажите пожалуйста! Учу код и решил написать регистрацию но столкнулся с такой проблемой что когда регистрируешь пользователя с русским логином то Николай и николай при разном регистре будут разными пользователями вот код проверки.
c.execute(“SELECT name FROM user WHERE UPPER(name) LIKE :name”, {“name”:name})
conn.commit()
r = c.fetchone()
elif r != None:
print('Логин существует!')
reg()
Если с латинскими буквами работать то всё норм. Как запретить ввод кириллицы или убрать привязку к регистру? Я туп пока в программировании) Так что простите за возможно не правильно поставленный вопрос)
doza_and
KOMn
Если с латинскими буквами работать то всё норм.
Ваш софт будет удобен и востребован если он ведет себя так как принято в сообществе.

А принято как раз обратное. Регистр важен. Я бы очень жестко обматерил разработчика который не так сделает. Более того, и программировать неудобно когда вы делаете “Против течения”

Если вы согласны поменять парадигму то просто убрать UPPER из запроса.

Если нет то править надо не то что вы привели. Upper надо делать в питоне перед записью в базу и перед формированием запроса.
KOMn
Точнее да мне как раз и нужен регистр. Чтобы не давал в конечном итоге регистрировать пользователя с одинаковым именем когда применяется разный регистр.
KOMn
Тоесть я так понял Upper мне нужно добавить сюда?
c = conn.cursor()
c.execute(“INSERT INTO user (name, password) VALUES ('%s','%s')”%(username,userpassword))
conn.commit()
print('Вы успешно зарегестрировались!')
KOMn
Я так понял что можно UPPER вообще не использовать для проверки на наличие имени в базе. Но с кириллицей не работает. Как же всё-таки запретить ввод кириллицы в форму?
marvellik
KOMn
Как же всё-таки запретить ввод кириллицы в форму
проверить на наличие кириллицы
в водимой строке
1 регуляркой выбрав кириллицу из строки и если есть результат то выдать ошибку
2 сравнив множество из строки с множеством из букв в кирил.
3 тупо сравнить побуквенно с списком букв в кирил.
KOMn
А пример кода можно?
Я примерно представляю но не уверен
KOMn
Всё получилось Спасибо за подсказку
import re
pattern=re.sub(r'^+', ‘', name)
string=str(name)
result=re.findall(pattern, string)
if name in result:
print(’Логин не может содержать русские буквы!')
reg()
Вот ещё осталось символы добавить)
PEHDOM
KOMn кажеться вы подходите не стой стороны. А если там будет не кирилица а какиенить китайские иероглифы, греческий, арабский или спецсимволы? Вы бы лучше проверяли на вхождение на латиницу и разрешенные сиволы(цифры точка, нижнее подчеркивание, хз что еще), если там есть еще чтото то отлуп.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB