c# - 如何防止'字符被输入到文本框中?

标签 c# mysql asp.net regex apostrophe

我试图阻止 ' 字符被输入到文本框中。 问题是,如果复制并粘贴 字符,它会变成右单引号,这会在尝试将文本框保存到数据库时导致 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");
}

有没有办法仍然允许用户输入撇号但阻止单引号?

最佳答案

如果您确实需要删除该字符,您最好自己替换该字符,而不是阻止用户输入(尤其是当他们正在复制和粘贴时):

txtName.Text = txtName.Text
    .Replace((char) 0x2018, '\'')  // ‘ ‘
    .Replace((char) 0x2019, '\'')  // ’ ’
    .Replace((char) 0x201C, '"')   // “ “
    .Replace((char) 0x201D, '"');  // ” ”

这样,您就不会妨碍用户,并且仍会删除该角色。

但是,听起来您可能正在使用字符串连接来构建查询,这是一个更严重的问题!

关于c# - 如何防止'字符被输入到文本框中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37704472/

相关文章:

asp.net - 从 iframe 捕获 pdf 超链接点击

c# - Microsoft Graph API 不返回我需要的属性

c# - String.Remove 静态方法中的等价物

php - 剑道自动完成 : datasource update dynamically

Java 或 SQL 在数组中添加缺失的月份

php - 运行带返回值的 PHP 代码

c# - 无效的 JSON 原语 : object : Passing Object as a Parameter from aspx

javascript - 检查 RadListView ItemTemplate 中的 RadButton 复选框 - 客户端

c# - 如何在不在浏览器中显示的情况下在幕后运行 url?

c# - 读取前缀文件错误