在javascript中比较文件中的行和表单中的输入

在javascript中比较文件中的行和表单中的输入,javascript,Javascript,我的目标是将文本文件的第一行与从表单接收的输入进行比较。 我的代码成功地从文件中读取,之后我使用以下代码 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(" ").joi

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

  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
我的问题是,两句话都是相等的,但控制台对我说的是false

 console.log(sentence==input);
这是怎么可能的,为什么。

像这样检查

语法:

str1.localeCompare(str2)
    var str1 = "ab abcde";
    var str2 = "ab abcde";
    var n = str1.localeCompare(str2);
    document.getElementById("demo").innerHTML = n;
localeCompare的解释:它将

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

所以两个字符串相等,它将提供0。

如下检查

语法:

str1.localeCompare(str2)
    var str1 = "ab abcde";
    var str2 = "ab abcde";
    var n = str1.localeCompare(str2);
    document.getElementById("demo").innerHTML = n;
localeCompare的解释:它将

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

因此,您的两个字符串相等,它将提供0。

请尝试以下方法

console.log(sentence.trim()==input.trim());

console.log(sentence.toLowerCase()==input.toLowerCase());

console.log(sentence.localeCompare(input)==0);
试试下面的方法

console.log(sentence.trim()==input.trim());

console.log(sentence.toLowerCase()==input.toLowerCase());

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

您可以使用不同的方法

方法一:

str1.localeCompare(str2)
    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
有关更多详细信息,请查看:

方法二:

str1.localeCompare(str2)
    var str1 = "ab abcde";
    var str2 = "ab abcde";
    var n = str1.localeCompare(str2);
    document.getElementById("demo").innerHTML = n;
您可以使用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}
var s1='Example 1';
var s2=‘示例2’;
变量s1Array=s1.split(“”);
变量s2Array=s2.split(“”);
var结果=0;

对于(var i=0;i,可以使用不同的方法

方法一:

str1.localeCompare(str2)
    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
有关更多详细信息,请查看:

方法二:

str1.localeCompare(str2)
    var str1 = "ab abcde";
    var str2 = "ab abcde";
    var n = str1.localeCompare(str2);
    document.getElementById("demo").innerHTML = n;
您可以使用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}
var s1='Example 1';
var s2=‘示例2’;
变量s1Array=s1.split(“”);
变量s2Array=s2.split(“”);
var结果=0;

对于(var i=0;itry console.log(句子.trim()==input.trim());句子和输入到底是什么?console.log产生了什么?你也应该使用
===
而不是
==
,谢谢伙计。我现在试过了,效果很好。@abdurahmanaydar如果它对youtry console.log(句子.trim()==input.trim())有效,你应该接受这个答案;句子和输入到底是什么?console.log产生了什么?你也应该使用
====
而不是
==
,谢谢伙计。我现在试过了,效果很好。@AbdurahmanHaydar如果它对你们都有效,你应该接受这个答案。
==
的行为非常不一致,应该打电话y从不被使用。例如,
“abc”==新字符串(“abc”)//false
,两者都是字符串…两者都是字符串===的用法。
=
的行为非常不一致,通常不应使用。例如,
“abc”==新字符串(“abc”)//false
,两者都是字符串。。。