javascript - 如何使用 JavaScript 验证文本文件的内容?

标签 javascript

如何使用 JavaScript 验证文本文件的内容?例如,我有一个文本文件,其中包含:

6594567890
6594567891
6594567892
6594567893
92345678
92345679
92345680

因此,我需要在一定条件下验证内容:

  1. 如果其前缀不等于 659 和 9,则会被拒绝。
  2. 如果其前缀等于 659 但长度不等于 10,则会被拒绝。
  3. 如果其前缀等于 9 但长度不等于 8 则将被拒绝。

目前我有以下使用 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>&nbsp;&nbsp;&nbsp;&nbsp;
</font>

有什么想法可以做到这一点吗? jsfiddle 或示例代码将受到高度赞赏。

最佳答案

猜猜您关心的是阅读每一行? 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>&nbsp;&nbsp;&nbsp;&nbsp;</font>

关于javascript - 如何使用 JavaScript 验证文本文件的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13046647/

相关文章:

javascript - Javascript递归调用中的增量(i++)和(i+=1)

javascript - 从 Javascript 变量中设置的 HTML 获取信息

javascript - jQuery Ajax 之后可以运行吗?

javascript - 正则表达式处理多个匹配就像一个,如何解决?

javascript - 为什么我的叠加层覆盖了一些元素而不是全部?

javascript - 使用 React 从 API 端点获取返回值未定义

javascript - HTTP 请求适用于 cURL,但在使用 javascript 在浏览器中发出时会获得 CORS 响应

javascript - 在这种情况下,JavaScript 的 apply() 的目的是什么?

javascript - 重新排序数组以将特定元素放置在给定索引处?

javascript - jquery确认密码验证