【问题标题】:Problems with server-side string validation服务器端字符串验证的问题
【发布时间】:2014-07-08 13:21:14
【问题描述】:

我正在开发一个自定义类来包含正则表达式。原因是我遇到了很多问题,客户端表达式并不总是在回发时验证。

我正在编写的类有一个文本输入,并且会根据特定的测试返回 true。

我正在尝试做一个表达式来检查字符串是否只包含数字,如果包含则返回 true,否则如果它包含其他任何内容,它应该返回 false。

我输入的正则表达式抛出错误:无法识别的转义序列并且不会运行。

这是方法:

static public bool IsOnlyNumeric(string InputText)
{
    //Returns true if only numeric
    bool val = System.Text.RegularExpressions.Regex.IsMatch(InputText, "[0-9]*\.?[0-9]*");

    return val;

}  

【问题讨论】:

    标签: c# asp.net class webforms boolean


    【解决方案1】:

    你需要转义反斜杠\

    "[0-9]*\\.?[0-9]*"
    //     ^^ double backslash
    

    这是因为反斜杠是用来转义其他字符的。要转义它,您需要在它前面加上另一个前缀。

    另一种方法是通过在字符串前面加上 @ 前缀来使用逐字字符串文字:

    @"[0-9]*\.?[0-9]*"
    

    【讨论】:

      【解决方案2】:

      要处理没有小数的纯数字数据,请按如下方式更改代码:

      static public bool IsOnlyNumeric(string InputText)
      {
          //Returns true if only numeric
          bool val = System.Text.RegularExpressions.Regex.IsMatch(InputText, "^[1-9]\d*$");
      
          return val;
      
      }  
      

      【讨论】:

      • 我有同样的错误,它在你的表达式的“d”字符上突出显示。
      【解决方案3】:

      你可以使用下面提到的代码

      System.Text.RegularExpressions.Regex.IsMatch(inputtext, "^[0-9]*$")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-04-03
        • 2022-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-22
        • 1970-01-01
        相关资源
        最近更新 更多