如何使用javascript验证文本文件的内容?例如,我有一个文本文件包含:
6594567890
6594567891
6594567892
6594567893
92345678
92345679
92345680
因此,我需要在某些条件下验证内容:
目前我使用JS有以下代码:
<input type="file" name="txt_list" id="txt_list" class="inpText" size="26" />
<script>
var input_file = document.getElementById('txt_list');
input_file.onchange = function() {
var file = this.files[0];
var reader = new FileReader();
reader.onload = function(ev) {
// Show content (ev.target === reader)
alert(ev.target.result);
};
reader.readAsText(file);
};
</script>
<font color="FF0000" style="font-weight:bolder;">
<b>* Compulsory</b>
</font>
任何想法如何做到这一点? jsfiddle或示例代码将受到高度赞赏。
答案 0 :(得分:3)
猜猜它正在阅读您关注的每一行? ev.target.result是一个长链字符,它必须分成字符串。对我来说,如何评估线条并不是很清楚,所以请坚持下去
<input type="file" name="txt_list" id="txt_list" class="inpText" size="26" />
<script>
var input_file = document.getElementById('txt_list');
input_file.onchange = function() {
var file = this.files[0];
var reader = new FileReader();
reader.onload = function(ev) {
var str='';
for (var i=0;i<ev.target.result.length;i++) {
str+=ev.target.result[i];
if (ev.target.result[i]=="\n") { //new line
//probably very misunderstood evaluation
if (((str.substr(4,7)=='659') && (str.length!=10)) ||
((str.substr(4,7)!='659') && (str.length==9)) ||
((str.substr(4,5)=='9') && (str.length!=8))) {
alert('rejected');
} else {
alert('accepted');
}
//reset the line
str='';
}
}
};
reader.readAsText(file);
};
</script>
<font color="FF0000" style="font-weight:bolder;">
<b>* Compulsory</b> </font>
答案 1 :(得分:-3)
JS无法访问文件系统(除非使用NodeJS或类似)。 也就是说,你只需要写一些正则表达式,或者甚至是一个简单的if / else if / else条件匹配长度和前几个数字(根据你的要求)。
示例:
var a = "659000000"
if ( a.match(/^659/) && a.length == 9 ) {
//it starts with 659 and length is 9!
}else if ....
}else....
}