正则表达式不在asp.net中工作(.aspx页面)

时间:2015-10-23 13:41:24

标签: asp.net regex

我有一个正常工作的正则表达式(当我尝试通过在线正则表达式检查网站时)。 这不应该允许1234.1234.1234.1234但是当我在asp.net中使用它时,它甚至允许这些值。

有什么建议吗?

var ipfilter = new RegExp("(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?$)");

2 个答案:

答案 0 :(得分:1)

在线正则表达式检查网站是否使用了针对.NET的regex测试? .NET正则表达式与Javascript正则表达式略有不同。

http://refiddle.com/ - 您可以通过从左侧的正则表达式选项下拉列表中选择.NET来对此进行测试。

答案 1 :(得分:1)

.NET正则表达式与JavaScript 非常不同。但是,在这种情况下,这是一个常见问题:点必须以 literal 反斜杠开头,或放在字符类中。我建议后者因为它不易出错,你需要添加一个^(字符串的开头)锚:

var rx = "^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)[.](25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)[.](25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)[.](25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?$)";