使用RegExp函数

时间:2013-03-11 10:08:17

标签: javascript regex validation

我是HTML和JavaScript的新手。我们正在尝试使用RegExp函数使用以下正则表达式验证IP地址。但是这个正则表达式的问题是验证并返回true,对于无效的IP地址也是如此。

例如,当IP地址输入为10.94.161.125时,正则表达式可正常工作,但当IP地址输入为10/94/161/125时,正常表达式返回true。

事实上,.(如@!#等)中的任何字符都不会使函数返回false,而是正在回归真实。请让我知道确切的区别是什么“\。”正在制作以使正则表达式正常工作,其中“。”它不是以正确的方式使正则表达式工作。这是我需要澄清的地方。

正则表达式非工作案例senario:

var ipRE = new RegExp( '^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$' );

正则表达式工作案例senario

var ipRE = new RegExp( '^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$' );

2 个答案:

答案 0 :(得分:1)

作为参考,如果有人来这里寻找答案:

  

反斜杠(\)可用于插入撇号,新行,   引号和其他特殊字符组成一个字符串。

示例:

var str = 'You\'re welcome';

不转义',字符串将在You

之后终止

在正则表达式中,点需要转义,因为点在正则表达式中具有特殊含义。然后需要对反斜杠进行转义,因为它在javascript中具有特殊含义。

答案 1 :(得分:0)

ValidIpAddressRegex = "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$";

和:

ValidHostnameRegex = "^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$";