Optimum way to compare strings in JavaScript?

This question already has an answer here:

  • Is there a JavaScript strcmp()? 5 answers

  • You can use the localeCompare() method.

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

    Further Reading:

  • Stack Overflow - Is there a JavaScript strcmp()?
  • Tutorials Point: JavaScript String - localeCompare() Method

  • Well in JavaScript you can check two strings for values same as integers so yo can do this:

  • "A" < "B"
  • "A" == "B"
  • "A" > "B"
  • And therefore you can make your own function that checks strings the same way as the strcmp() .

    So this would be the function that does the same:

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

    You can use the comparison operators to compare strings. A strcmp function could be defined like this:

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

    Edit Here's a string comparison function that takes at most min { length(a), length(b) } comparisons to tell how two strings relate to each other:

    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/58634.html

    上一篇: 如何比较long值等于Long值

    下一篇: 在JavaScript中比较字符串的最佳方法?