Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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 正则表达式检查正确的扩展名_Javascript_Asp.net - Fatal编程技术网

Javascript 正则表达式检查正确的扩展名

Javascript 正则表达式检查正确的扩展名,javascript,asp.net,Javascript,Asp.net,我的javascript在调用有效扩展时遇到了一个问题,即当它们应该通过时无效。我在服务器端代码中使用了这个正则表达式,对我来说效果很好。 我验证了reg表达式所检查的值是否也有效 我是否在javascript中声明reg表达式错误 var ck_name = /^.+\.((gdf)|(GDF))$/; var chldValue = chld.value.substring(chld.value.length - 4, chld.value.length); alert(chld

我的javascript在调用有效扩展时遇到了一个问题,即当它们应该通过时无效。我在服务器端代码中使用了这个正则表达式,对我来说效果很好。 我验证了reg表达式所检查的值是否也有效

我是否在javascript中声明reg表达式错误

 var ck_name = /^.+\.((gdf)|(GDF))$/;
 var chldValue = chld.value.substring(chld.value.length - 4, chld.value.length);
    alert(chldValue);

    if (!ck_name.test(chldValue)) {
        errors[errors.length] = "File is NOT a GDF file";
}

首先,
^.+
是不必要的,也是浪费时间的

第二,您的字符串只有四个字符长,您要查找的是。。。长度至少为五个字符。因此,他们永远不会匹配

第三,正则表达式是过度使用

最后,您的代码应该是:

if( chld.value.substr(chld.value.length-4).toLowerCase() != ".gdf")
    errors.push("File is NOT a GDF file");

首先,
^.+
是不必要的,也是浪费时间的

第二,您的字符串只有四个字符长,您要查找的是。。。长度至少为五个字符。因此,他们永远不会匹配

第三,正则表达式是过度使用

最后,您的代码应该是:

if( chld.value.substr(chld.value.length-4).toLowerCase() != ".gdf")
    errors.push("File is NOT a GDF file");

+1唯一的区别是,您允许混合情况。我不知道为什么那样会不受欢迎。请注意,这是一个没有实际意义的观点。我可以将任何文件重命名为具有
.gdf
扩展名,而不管它是否是gdf文件。具有讽刺意味的是,如果您当时没有使用子字符串来减少匹配的内容,原始代码本来可以正常工作。但这里的内容更干净。+1唯一的区别是允许混合情况。我不知道为什么那样会不受欢迎。请注意,这是一个没有实际意义的观点。我可以将任何文件重命名为具有
.gdf
扩展名,而不管它是否是gdf文件。具有讽刺意味的是,如果您当时没有使用子字符串来减少匹配的内容,原始代码本来可以正常工作。这里的东西更干净。