我有一个正常工作的正则表达式(当我尝试通过在线正则表达式检查网站时)。 这不应该允许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]?$)");
答案 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]?$)";