Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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 正则表达式在Firefox中工作,但在Chrome中不工作?_Javascript_Jquery_Regex_Google Chrome_Firefox - Fatal编程技术网

Javascript 正则表达式在Firefox中工作,但在Chrome中不工作?

Javascript 正则表达式在Firefox中工作,但在Chrome中不工作?,javascript,jquery,regex,google-chrome,firefox,Javascript,Jquery,Regex,Google Chrome,Firefox,我有一个检查文件名的正则表达式。到目前为止,它在Firefox中运行良好,但当我在Chrome中测试时,我的正则表达式触发了带有正确命名文件的if语句。这是我的正则表达式: if(!/^[a-z0-9_.@() -]+\.[^.]+$/i.test(fileName)){ alert("Your file name has an invalid character."); } 仅当文件名无效时,警报才会显示。就像我说的,这个文件my test.txt在Firefox中工作,但在chro

我有一个检查文件名的正则表达式。到目前为止,它在Firefox中运行良好,但当我在Chrome中测试时,我的正则表达式触发了带有正确命名文件的if语句。这是我的正则表达式:

if(!/^[a-z0-9_.@() -]+\.[^.]+$/i.test(fileName)){
    alert("Your file name has an invalid character.");
}

仅当文件名无效时,警报才会显示。就像我说的,这个文件
my test.txt
在Firefox中工作,但在chrome中触发了警报。如果有人知道为什么会这样,请告诉我。谢谢

所以我找到了解决问题的方法。除了文件名,我必须删除所有内容。我使用了以下代码:

var fileName = $('#fileUpload').val().split('\\').pop();

这将产生:
my test.txt
,如果我没有使用
.split('\\').pop()
我的文件名如下:
C:\fakepath\my test.txt

如何填充文件名?
var=“my test.txt”然后
/^Chrome控制台中的[a-z0-9\@()-]+\.[^.]+$/i.test(文件名)
按预期显示后者的
false
。有些事情正在发生,有些事情在问题中没有表现出来;正则表达式不是问题所在。我从输入type=“file”中获取文件。这是我的上载按钮值。请尝试在
if
条件之前记录文件名,以查看两个浏览器之间是否存在差异。
/^[a-z0-9\.@()-]+\.[^.]+$/i.test('test.txt'))
在Chrome控制台中输出true。我想您可能会在不同的操作系统上遇到问题,这些操作系统的文件路径(例如~/fakepath/my test.txt)具体在哪个系统/浏览器中使用正斜杠?我给出的示例在大多数Linux系统中都是非常正常的文件路径。我对苹果公司不是很有信心,但我认为他们也使用前斜杠。