【发布时间】:2016-06-08 13:51:20
【问题描述】:
我试图阻止 ’ 字符被输入到文本框中。
问题是如果您复制并粘贴 ’ 字符,它会变成一个右单引号,这会在尝试将文本框保存到数据库时导致 sql 错误。
你可以在这里看到 unicode lookup
如果您手动输入',则它是一个撇号,并且该字符被接受。
问题是人们将这个字符从电子邮件中复制并粘贴到文本框中,然后它被转换为单引号。
Regex regex = new Regex(@"^[a-zA-Z0-9]*$");
Match match = regex.Match(txtName.Text);
if (!match.Success)
{
DisplayMsg("Name contains invalid character");
}
有没有办法仍然允许用户输入撇号但防止单引号?
【问题讨论】:
-
右撇号如何导致 SQL 错误,而“常规”撇号不会?
-
@DStanley 如果您单击用于 unicode 查找的链接并输入
’,它将成为一个右引号。只有当我从诸如电子邮件之类的东西中复制撇号时才会发生这种情况。然后右单引号会导致 sql 错误。 -
但是一个撇号有效吗?或者您是在连接字符串并且撇号导致错误?如果这是问题所在,那么通过使用参数而不是连接字符串来修复 that。
-
是的,单个撇号有效。
-
但是错误是什么?我不明白正确的引用是如何导致错误的,除非您正在执行某种可能可以修复的字符串操作。
标签: c# mysql asp.net regex apostrophe