Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 比较字符串时缺少)参数列表之后_Javascript_Html - Fatal编程技术网

Javascript 比较字符串时缺少)参数列表之后

Javascript 比较字符串时缺少)参数列表之后,javascript,html,Javascript,Html,我有一个按钮可以触发函数compareArea()。看起来是这样的: <button id="compare" onclick="compareArea()" type="button">Compare</button> <script> function compareArea() { alert("string1"~ = "string2"); } </script> <button id="compa

我有一个按钮可以触发函数
compareArea()
。看起来是这样的:

<button id="compare" onclick="compareArea()" type="button">Compare</button>

<script>
    function compareArea() {
        alert("string1"~ = "string2");
    }
</script>
<button id="compare" onclick="compareArea()" type="button">Compare</button>

<script>
  function compareArea() {
    var string1 = "string1";
    var string2 = "string2";
    var shortest;
    var count = 0;

    if(string1.length === string2.length) {
      shortest = string1;
    } else if(string1.length < string2.length) {
      shortest = string1;
      count = string2.length - string1.length;
    } else if(string1.length > string2.length) {
      shortest = string2;
      count = string1.length - string2.length;
    }

    for (var i=0; i < shortest.length; i++) {
     if(string1.charAt(i) !== string2.charAt(i)) {
       count++;
     }
    }
    alert(count);
  }
</script>
比较 函数compareArea(){ 警报(“string1”~=“string2”); }
但是,在参数列表之后返回了错误。出了什么问题?

据我所知,没有简单的比较可以告诉您有多少字符不同。你能做的是:

  • 检查哪个字符串较短。如果两个字符串的长度相同,但一旦其中一个字符串比另一个字符串短,那么在迭代它们时就没有问题了
  • 迭代所有字符,比较每个字符
  • 每次不匹配时增加一个计数器
  • 它可能是这样的:

    <button id="compare" onclick="compareArea()" type="button">Compare</button>
    
    <script>
        function compareArea() {
            alert("string1"~ = "string2");
        }
    </script>
    
    <button id="compare" onclick="compareArea()" type="button">Compare</button>
    
    <script>
      function compareArea() {
        var string1 = "string1";
        var string2 = "string2";
        var shortest;
        var count = 0;
    
        if(string1.length === string2.length) {
          shortest = string1;
        } else if(string1.length < string2.length) {
          shortest = string1;
          count = string2.length - string1.length;
        } else if(string1.length > string2.length) {
          shortest = string2;
          count = string1.length - string2.length;
        }
    
        for (var i=0; i < shortest.length; i++) {
         if(string1.charAt(i) !== string2.charAt(i)) {
           count++;
         }
        }
        alert(count);
      }
    </script>
    
    比较 函数compareArea(){ var string1=“string1”; var string2=“string2”; var最短; var计数=0; if(string1.length==string2.length){ 最短=1; }否则如果(string1.lengthstring2.length){ 最短=2; 计数=string1.length-string2.length; } 对于(变量i=0;i使用
    ==
    而不是
    ~=
    。但是,这会返回一个布尔值-如果我想要一个整数,其中有多少个字母不匹配呢@KindUsers“多少字母不匹配”是什么意思。字符串的模糊比较是一个复杂的主题,你必须解释哪个算法更适合你。你需要通过逐个检查每个字母来设计这样一个函数。我读了一些关于这个主题的帖子,一个人建议使用
    sum(str1==str2)
    查找有多少字母不正确。然而,
    sum
    不是一个定义的函数,使用~=会给我一个错误,所以我想看看哪里出了问题@gyre@obsidiageThank you Felix。这是有道理的。这正是我想要的@费利克斯