Javascript 使用RegExp函数
我是HTML和JavaScript的新手。我们正在尝试使用下面的正则表达式使用RegExp函数验证IP地址。但是这个正则表达式的问题是,对于无效的IP地址,验证并返回true 例如,当IP地址输入为Javascript 使用RegExp函数,javascript,regex,validation,Javascript,Regex,Validation,我是HTML和JavaScript的新手。我们正在尝试使用下面的正则表达式使用RegExp函数验证IP地址。但是这个正则表达式的问题是,对于无效的IP地址,验证并返回true 例如,当IP地址输入为10.94.161.125时,正则表达式正常工作,但当IP地址输入为10/94/161/125时,它返回true 事实上,替换的任何字符(如@、!、#等)都不会使函数返回false,而是返回true。请务必让我知道“\”的确切区别是什么,以便使正则表达式正确工作,而“as”的确切区别是“它没有使正则表
10.94.161.125
时,正则表达式正常工作,但当IP地址输入为10/94/161/125
时,它返回true
事实上,替换
的任何字符(如@
、!
、#
等)都不会使函数返回false,而是返回true。请务必让我知道“\”的确切区别是什么,以便使正则表达式正确工作,而“as”的确切区别是“它没有使正则表达式以正确的方式工作”。这就是我需要澄清的地方
正则表达式非工作情况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}$' );
以及:
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])$";
作为参考,如果有人来这里寻找答案: 反斜杠(\)可用于插入撇号、新行、, 将引号和其他特殊字符转换为字符串 例如:
var str = 'You\'re welcome';
如果不转义”
,字符串将在之后终止
在正则表达式中,点需要转义,因为点在正则表达式中有特殊的含义。然后需要对反斜杠进行转义,因为它在javascript中有特殊的含义。您显示的正则表达式不会暴露您描述的问题。张贴您实际使用的代码,更好的是,首先尝试自己找出差异。这个正则表达式工作得非常完美。所以您实际上有工作代码,现在粘贴损坏的代码,以便您可以提问?这能完成什么?你为什么不问你真正想问的问题呢?当我第一次发布这个问题时,我错误地粘贴了工作代码。我试图找出额外的“\\”是如何解决问题的。阅读JavaScript字符串和正则表达式中的字符转义。您似乎缺少一个非常基本的概念,不应该在不理解它的情况下继续使用正则表达式。一个如此复杂的正则表达式在没有任何解释或上下文的情况下发布,很难算作一个答案。感谢您的澄清
var str = 'You\'re welcome';