C# 将文本框内的文本转换为纯文本

C# 将文本框内的文本转换为纯文本,c#,asp.net,validation,textbox,C#,Asp.net,Validation,Textbox,我有一个应用程序,它有一个文本框、验证控件和一个按钮。问题是,如果有人在文本框内复制word文档中的文本,由于验证控件的原因,某些特殊字符将不被允许。但是如果我删除这些特殊字符并键入它们,验证控制就会起作用。有没有办法在文本框中将该文本转换为纯文本或富文本?我假设您希望在执行验证之前将文本转换为纯ASCII 看看这个答案: 它看起来像您要找的东西。如果它是winforms应用程序,请尝试以下操作: using System.Windows.Forms; 参考: 我不确定我是否在跟踪。验证控件似

我有一个应用程序,它有一个文本框、验证控件和一个按钮。问题是,如果有人在文本框内复制word文档中的文本,由于验证控件的原因,某些特殊字符将不被允许。但是如果我删除这些特殊字符并键入它们,验证控制就会起作用。有没有办法在文本框中将该文本转换为纯文本或富文本?

我假设您希望在执行验证之前将文本转换为纯ASCII

看看这个答案:


它看起来像您要找的东西。

如果它是winforms应用程序,请尝试以下操作:

using System.Windows.Forms;
参考:

我不确定我是否在跟踪。验证控件似乎正在做它应该做的事情。有什么问题吗?你能提供一些代码/一个例子来说明它应该如何工作吗?好吧,假设我从word中复制了一些带有撇号的东西,但是因为它来自word文档,撇号的格式不是键盘上的标准撇号。因此,我想将所有特殊字符转换为标准键盘字符。不是word有时所具有的非常丰富的字符。这解释得好一点吗?稍微好一点,但标准键盘字符并没有很好的定义。我输入的这些字符可以吗?还有,也许你不需要验证,只需要输入消毒,不管这在你的应用程序中意味着什么。不,标准键盘字符是键盘布局,你只需按下一个或两个按钮,而不需要使用alt键和数字键盘无ASCII OCT码。我有一些,但为了更好地保护应用程序,你不能通过清理来捕获所有威胁:有些字符,与其过滤它们,不如不允许。不是winforms应用程序。网络应用。这就是asp.netI的标记。我只是在验证控件中添加了一些MS Word字符。但我更喜欢这些答案。
public class MyTextBox : TextBox 
{
    protected override void WndProc(ref Message m) {        
        if (m.Msg == 0x302 && Clipboard.ContainsText())
        {          
            var text = new string(Clipboard.GetText().Where(c => !char.IsControl(c)).ToArray());
            this.SelectedText = text;
            return;
        }
        base.WndProc(ref m);
    }
}