我有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);
}