Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用RegExp函数_Javascript_Regex_Validation - Fatal编程技术网

Javascript 使用RegExp函数

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”的确切区别是“它没有使正则表

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

例如,当IP地址输入为
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';