我有JavaScript代码来检查字符串中是否包含特殊字符。该代码在Firefox中可以正常运行,但在Chrome中则不能。在Chrome浏览器中,即使该字符串不包含特殊字符,它也会说它包含特殊字符。

var iChars = "~`!#$%^&*+=-[]\\\';,/{}|\":<>?";

for (var i = 0; i < chkfile.value.length; i++)
{
  if (iChars.indexOf(chkfile.value.charAt(i)) != -1)
  {
     alert ("File name has special characters ~`!#$%^&*+=-[]\\\';,/{}|\":<>? \nThese are not allowed\n");
     return false;
  }
}

假设我想从任何Linux/Windows计算机上上传文件desktop.zip
在Firefox中,chkfile.value的值为desktop.zip,但在Chrome中,chkfile.value的值为c://fakepath/desktop.zip。如何摆脱c://fakepath/中的chkfile.value

最佳答案

您可以使用以下regular expression测试字符串:

function isValid(str){
 return !/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g.test(str);
}

10-06 07:57
查看更多