我是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}$' );
答案 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])$";