gpt4 book ai didi

html - 是否可以强制网站输入为英文?

转载 作者:太空狗 更新时间:2023-10-29 13:06:13 26 4
gpt4 key购买 nike

我正在用两种语言创建一个网站 ( Speedy Net ) - 英语和希伯来语。我有一个输入字段(slug/用户名),它必须是英文(字母数字拉丁字符)。当我从手机进入网站时,我可以用希伯来语写文字。是否可以在此输入字段中强制键盘为英文?我注意到对于电子邮件地址(电子邮件输入),键盘已经是英文的。

更新:在服务器端,我们会验证输入。我不想在客户端验证输入(使用 JavaScript)或阻止用户输入希伯来字符(这可能稍后完成),但我想导致(强制)默认键盘语言为英语.我注意到对于电子邮件和密码,当我将它们的方向设置为 ltr 时,键盘的默认语言是英语。但不是在 slug/username 字段上。

电子邮件输入被我测试的浏览器自动验证为英文。你不能在那里使用希伯来语字符。

我在 Stack Overflow 或其他地方进行了搜索,但没有找到类似的问题。

slug 字段可以包含任何非字母数字字符,这些字符由服务器转换为破折号。例如Aa=Bb!1@2#3$4%56被服务器转换为aa-bb-1-2-3-4-56,即Speedy Net 上用户的有效 slug。但是,אא-בב-1-2-3-4-56 在 Speedy Net 上不是有效的 slug。用户的 slug 必须以至少 4 个拉丁字母开头。

当页面使用希伯来语时就会出现问题。如果页面是英文的,就没有问题。

在我的网站上,当输入名字和姓氏时,用户可以输入任何语言。键入电子邮件地址(电子邮件输入)时,键盘会自动切换为英语(已在 Galaxy 上测试)。但是当输入别名/用户名(在电子邮件地址之后)时,如果在输入电子邮件之前(在 Galaxy 上)键盘是希伯来语,则键盘会切换回希伯来语。这就是我要防止的。

最佳答案

在我看来,您有 2 个选择。

第一个是让用户输入他们想要的任何内容,但在后端使用一个只接受带有拉丁字符的用户名的验证器。

class UsernameValidator(validators.RegexValidator):
regex = r'^[\w.@+-]+\Z'
message = _(
'Enter a valid username. This value may contain only letters, '
'numbers, and @/./+/-/_ characters.'
)
flags = 0


class YourUser(User):
username = models.CharField(
_('username'),
max_length=150,
unique=True,
help_text=_('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'),
validators=[UsernameValidator()],
error_messages={
'unique': _("A user with that username already exists."),
},
)

第二种是使用某种 JavaScript 掩码库,例如 https://imask.js.org/所以你可以防止用户插入任何你不希望他们插入的数据,但是无论如何,如果你遵循这种方法,你应该在后端验证数据

关于html - 是否可以强制网站输入为英文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57269532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com