如何处理HTML输入域中Curly/Smart双引号(”)和直双引号(”)的冲突

How to handle the conflict between Curly/Smart double quote(”) and Straight double quote(") in the HTML input field

在我的网站登录页面上,存在与智能双引号 (”) 和直双引号 (”) 相关的问题。问题是我们有一个用户的密码带有直双引号 (" ).例如,

Abcd"123

但在他的 iPad 中显示“无效用户”,同时键入相同的密码。在我的研究中,我发现 iPad 键盘输入密码为:

Abcd”123

你可以看到双引号之间的区别。它实际上显示的是 'smart double-quote' 而不是 'straight double-quote'。在使用任何其他设备使用相同的用户凭据登录时,我无法生成问题。

有什么解决方案可以更改 iPad 键盘上的双引号吗? 或者我们是否需要添加任何额外的正则表达式代码以在网站源代码 (C#) 中将智能双引号转换为直双引号?

这是由于 smart quotes。直单引号会自动转换为弯引号。

如果您使用 UI 文本字段,则可以操作 smartQuotesType 属性。

如果您使用的是正则表达式验证,请将 ‘’ 添加到表达式中。

例如

[A-Za-z0-9'-] => [A-Za-z0-9‘’'-]

出现这个问题是因为,iPads 有不同类型的双引号,所以如果用户创建密码为 Abcd"123 并尝试使用 Abcd”123 登录,它将与第一个。这意味着这不是问题,因为两个密码不同,而且请不要在用户输入时尝试将双引号类型转换为我们要求的类型,因为用户可能很了解这种类型差异,他已经给出了那种类型的双引号来保证他的应用程序更安全。所以请尝试按原样使用 iPhone 功能。

您还可以通过按住 iPad 键盘中的双引号按钮来 select 双引号类型。当您按住键盘上的双引号键时,它会如下图所示。