Javascript 检查ascii纯文本
如何检查上载的文件是否为ascii纯文本Javascript 检查ascii纯文本,javascript,jquery,html,Javascript,Jquery,Html,如何检查上载的文件是否为ascii纯文本 $("#my_file").change(function(){ //alert if not ascii }); <input type="file" name="my_file" id="my_file" /> $(“#我的#文件”).change(函数(){ //如果不是ascii,则发出警报 }); 使用(尚未定稿且所有主要浏览器版本都不支持),您可以通过文件阅读器.readAsBinaryString(file)读取原始
$("#my_file").change(function(){
//alert if not ascii
});
<input type="file" name="my_file" id="my_file" />
$(“#我的#文件”).change(函数(){
//如果不是ascii,则发出警报
});
使用(尚未定稿且所有主要浏览器版本都不支持),您可以通过文件阅读器.readAsBinaryString(file)
读取原始文件内容,并确保每个字节(字符)在(0-127)中有一个值
例如():
功能确保可编程文件(evt){
var file,files=evt.target.files;
for(var i=0;file=files[i];i++){
var reader=new FileReader();
reader.onload=(函数(文件,读取器){
返回函数(e){
var fileContents=theReader.result;
if(fileContents.match(/[^\u0000-\u007f]/){
警报('错误:非ASCII文件“'+theFile.name+'”);
}否则{
警报('OK:ASCII文件“'+theFile.name+'”);
}
};
})(文件、阅读器);
reader.readAsBinaryString(文件);
}
}
$(“#我的#u文件”).change(确保可用文件);
何时要检查此项?上传之前还是之后?标记有一个名为accept charset的属性。您可以将其设置为ASCII。但我不确定浏览器是否能为您完成这项工作。您可能可以使用正则表达式来测试flie,而不是在每个字符上循环。要测试ASCII字符集:var re=new RegExp(“[^\\u0000-\\u007f]”)
这样,如果有一个字符超出范围0-128(十进制),RegExpre.test(string)
将返回true@RobG:ack,弄乱了上边界(在我脑子里把十进制转换成十六进制已经太晚了…)