比较javascript中从文件到表单的输入行

Compare line from file to input from form in javascript

本文关键字:表单 输入 文件 javascript 比较      更新时间:2023-09-26

我的目的是比较文本文件的第一行和从表单接收的输入。我的代码成功地从文件中读取,之后我使用以下代码

  var lines=result.split("'n");   //this line turns file into array
  var line=lines[i].split(" ");   //each index is further changed into an   array         
  var sentence=lines[i].split(" ").join(" ").toLowerCase();   //this turns the line/sentence from an array into a String
  var input=document.getElementById('inputFromForm').value.toLowerCase(); //this line get input from form
 console.log(sentence);    //this prints the first line of the text file to the console
 console.log(input);     //this prints the inputFromForm to the text file
 console.log(sentence==input);  //check for equality

我的问题是这两个句子是相等的,但是控制台对

说假
 console.log(sentence==input);

这怎么可能,为什么。

您可以使用不同的方法。

我:

方法

    var str1 = "ab abcde";
    var str2 = "ab abcde";
    var n = str1.localeCompare(str2);
    document.getElementById("demo").innerHTML = n;
  • 如果str1排在str2之前返回-1
  • 如果两个字符串相等,则返回0
  • 如果str1排在str2之后返回1

更多详细信息请查看:http://www.w3schools.com/jsref/jsref_localecompare.asp

方法二:

可以使用for循环匹配句子中的每个单词。

var s1 = 'Example 1';
var s2 = 'Example 2';
var s1Array= s1.split(' ');
var s2Array= s2.split(' ');
var result = 0;
for(var i = 0; i<s1Array.length; i++)
{
     if(s1Array[i] !== s2Array[i]){
         result=-1;   
         return;
     }
}
if(result<0){//strings not equal}

这个方法也可以用来发现两个句子有多相似。我在这里提到过这种方法,因为您将句子分割成数组,所以您也可以使用这种方法。

像这样检查

语法:

str1.localeCompare(str2)

localeCompare的解释:它将

  • 如果str1排在str2之前返回-1
  • 如果两个字符串相等,则返回0
  • 如果str1排在str2之后返回1

Console.log(sentence.localeCompare(input));

所以你的两个字符串相等它将提供0

尝试以下方法

console.log(sentence.trim()==input.trim());
console.log(sentence.toLowerCase()==input.toLowerCase());
console.log(sentence.localeCompare(input)==0);