在JavaScript中比较字符串的最佳方法?

这个问题在这里已经有了答案:

  • 有没有JavaScript strcmp()? 5个答案

  • 你可以使用localeCompare()方法。

    string_a.localeCompare(string_b);
    
    /* Expected Returns:
    
     0:  exact match
    
    -1:  string_a < string_b
    
     1:  string_a > string_b
    
     */
    

    进一步阅读:

  • 堆栈溢出 - 是否有JavaScript strcmp()?
  • 教程要点:JavaScript String - localeCompare()方法

  • 那么在JavaScript中,你可以检查两个字符串的值与整数相同,所以你可以这样做:

  • "A" < "B"
  • "A" == "B"
  • "A" > "B"
  • 因此,您可以使自己的函数检查字符串的方式与strcmp()

    所以这将是同样的功能:

    function strcmp(a, b)
    {   
        return (a<b?-1:(a>b?1:0));  
    }
    

    您可以使用比较运算符来比较字符串。 一个strcmp函数可以这样定义:

    function strcmp(a, b) {
        if (a.toString() < b.toString()) return -1;
        if (a.toString() > b.toString()) return 1;
        return 0;
    }
    

    编辑这里是一个字符串比较函数,它至多需要min {length(a),length(b)}比较来告诉两个字符串如何相互关联:

    function strcmp(a, b) {
        a = a.toString(), b = b.toString();
        for (var i=0,n=Math.max(a.length, b.length); i<n && a.charAt(i) === b.charAt(i); ++i);
        if (i === n) return 0;
        return a.charAt(i) > b.charAt(i) ? -1 : 1;
    }
    
    链接地址: http://www.djcxy.com/p/58633.html

    上一篇: Optimum way to compare strings in JavaScript?

    下一篇: How to properly compare two Integers in Java?