使用正则表达式错误时,从文本框中删除最后插入的宪章

雅科夫

我正在使用正则表达式以仅在文本框中输入数字,并尝试删除插入的任何非数字

private void txtNex_TextChanged(object sender, EventArgs e)
{
    if (System.Text.RegularExpressions.Regex.IsMatch(txtNex.Text, "[^0-9]"))
    {
        MessageBox.Show("insert numbers only");
        if (txtNex.Text.Length > 1)
        {
            txtNex.Text = txtNex.Text.Substring(0, txtNex.Text.Length - 1);
        }
        else
        {
            txtNexFixPhone.Text = "0";
        }
    }
}

问题是当它确实起作用时,存在某种错误(或我自己的知识不足),该错误将输入移至开头,如果我输入另一个非数字值,则会形成一个循环,从而删除所有文本

所以说我进入

123a

如果我尝试输入另一个“ a”,它将给我和错误消息框并删除“ a”,它将出现在123之前

a123

以错误循环结束,该错误循环将删除所有输入

t3chb0t

一个方法是一个坏主意,因为您检查了TextChanged已经太迟的输入-那里有无效字符,现在您必须删除它-最好这样做KeyPress并完全阻止输入,这样您就不必这样做了。完全不必操纵文本:

例子:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!Char.IsDigit(e.KeyChar))
    {
        MessageBox.Show("insert numbers only");
        e.Handled = true;
    }
}

但是,如果要修复将输入移至开头并保持当前解决方案错误,则在操作文本后需要将光标放在末尾,因为在文本框中设置新文本会重置光标的位置。

例子:

// Manipulate the text:
txtNex.Text = txtNex.Text.Substring(0, txtNex.Text.Length - 1);

// Put the cursor at the end:
txtNex.Select(txtNex.Text.Length, 0);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用正则表达式错误时,从文本框中删除最后插入的宪章

来自分类Dev

使用正则表达式从文本框中获取特定文本

来自分类Dev

正则表达式在末尾有空格时在文本框中获取错误

来自分类Dev

文本框的正则表达式以验证输入

来自分类Dev

文本框而不是消息框中的正则表达式

来自分类Dev

如何使用正则表达式来匹配文本框中给定的数据库和表名

来自分类Dev

关于通过正则表达式在文本框中应用验证

来自分类Dev

正则表达式在文本框中仅允许单个点

来自分类Dev

如何从文本框中更改正则表达式模式?

来自分类Dev

如何在ZKOSS的文本框中设置多个正则表达式Costraints

来自分类Dev

在asp.net的单个文本框中使用2个正则表达式

来自分类Dev

如何仅使用正则表达式来限制文本框的文本长度为9位数字

来自分类Dev

正则表达式删除文本

来自分类Dev

删除文本正则表达式

来自分类Dev

正则表达式从文本中删除字母数字

来自分类Dev

从文本中删除正则表达式数字

来自分类Dev

使用正则表达式删除文本的多余空行

来自分类Dev

使用正则表达式删除周围的文本

来自分类Dev

R 数据框中的正则表达式错误

来自分类Dev

使用正则表达式从文本中删除连续重复的单词并显示新文本

来自分类Dev

正则表达式可防止在WPF的文本框中输入双破折号和空格

来自分类Dev

RegularExpressionValidator正则表达式验证多行文本框中的IP(每行一个)?

来自分类Dev

什么是正则表达式 ValidationExpression 只允许文本框中的数字 1 到 100?

来自分类Dev

文本框必须在不使用正则表达式的javascript上包含数字或字母验证

来自分类Dev

在python 3中使用正则表达式从文本中删除CSS

来自分类Dev

使用正则表达式删除R数据框中的引号

来自分类Dev

如何使用正则表达式删除列表框中的项目

来自分类Dev

C#正则表达式-遍历文本框?

来自分类Dev

asp.net中文本框的互斥正则表达式验证器

Related 相关文章

  1. 1

    使用正则表达式错误时,从文本框中删除最后插入的宪章

  2. 2

    使用正则表达式从文本框中获取特定文本

  3. 3

    正则表达式在末尾有空格时在文本框中获取错误

  4. 4

    文本框的正则表达式以验证输入

  5. 5

    文本框而不是消息框中的正则表达式

  6. 6

    如何使用正则表达式来匹配文本框中给定的数据库和表名

  7. 7

    关于通过正则表达式在文本框中应用验证

  8. 8

    正则表达式在文本框中仅允许单个点

  9. 9

    如何从文本框中更改正则表达式模式?

  10. 10

    如何在ZKOSS的文本框中设置多个正则表达式Costraints

  11. 11

    在asp.net的单个文本框中使用2个正则表达式

  12. 12

    如何仅使用正则表达式来限制文本框的文本长度为9位数字

  13. 13

    正则表达式删除文本

  14. 14

    删除文本正则表达式

  15. 15

    正则表达式从文本中删除字母数字

  16. 16

    从文本中删除正则表达式数字

  17. 17

    使用正则表达式删除文本的多余空行

  18. 18

    使用正则表达式删除周围的文本

  19. 19

    R 数据框中的正则表达式错误

  20. 20

    使用正则表达式从文本中删除连续重复的单词并显示新文本

  21. 21

    正则表达式可防止在WPF的文本框中输入双破折号和空格

  22. 22

    RegularExpressionValidator正则表达式验证多行文本框中的IP(每行一个)?

  23. 23

    什么是正则表达式 ValidationExpression 只允许文本框中的数字 1 到 100?

  24. 24

    文本框必须在不使用正则表达式的javascript上包含数字或字母验证

  25. 25

    在python 3中使用正则表达式从文本中删除CSS

  26. 26

    使用正则表达式删除R数据框中的引号

  27. 27

    如何使用正则表达式删除列表框中的项目

  28. 28

    C#正则表达式-遍历文本框?

  29. 29

    asp.net中文本框的互斥正则表达式验证器

热门标签

归档