6

JavaScriptにC関数に相当するものはありますstrncmpか? strncmp2つの文字列引数と1つの整数length引数を取ります。2つの文字列を最大文字数で比較し、lengthそれらが可能な限り等しいかどうかを判断しlengthます。

JavaScriptには同等の組み込み関数がありますか?

4

6 に答える 6

11

その関数を簡単に作成できます。

function strncmp(str1, str2, n) {
  str1 = str1.substring(0, n);
  str2 = str2.substring(0, n);
  return ( ( str1 == str2 ) ? 0 :
                              (( str1 > str2 ) ? 1 : -1 ));
}

関数の最後にある三項の代わりに、次のようなlocaleCompare方法があります。return str1.localeCompare(str2);

于 2010-01-24T18:28:25.293 に答える
3

そうではありません。次のように定義できます。

function strncmp(a, b, n){
    return a.substring(0, n) == b.substring(0, n);
}
于 2010-01-24T18:30:40.443 に答える
2

そうではありませんが、他の多くの便利なjavascript関数とともに、ここで見つけることができます。

function strncmp ( str1, str2, lgth ) {
    // Binary safe string comparison  
    // 
    // version: 909.322
    // discuss at: http://phpjs.org/functions/strncmp
    // +      original by: Waldo Malqui Silva
    // +         input by: Steve Hilder
    // +      improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +       revised by: gorthaur
    // + reimplemented by: Brett Zamir (http://brett-zamir.me)
    // *     example 1: strncmp('aaa', 'aab', 2);
    // *     returns 1: 0
    // *     example 2: strncmp('aaa', 'aab', 3 );
    // *     returns 2: -1
    var s1 = (str1+'').substr(0, lgth);
    var s2 = (str2+'').substr(0, lgth);

    return ( ( s1 == s2 ) ? 0 : ( ( s1 > s2 ) ? 1 : -1 ) );
}
于 2010-01-24T18:29:09.417 に答える
2

ECMAScript 2015以降、次のようになりますstartsWith()

str.startsWith(searchString[, position])

これは、比較の長さがの長さでありsearchString、ブール値の戻り値のみが必要な非常に頻繁なユースケースをカバーしています(strcmp()代わりに、相対的な順序を示す整数を返します)。

Mozillaのドキュメントページには、のポリフィルも含まれていString.prototype.startsWith()ます。

于 2017-09-05T22:11:53.867 に答える
1

いつでも最初に文字列をサブストリングしてから比較することができます。

于 2010-01-24T18:27:47.253 に答える
1
function strncmp(a, b, length) {
   a = a.substring(0, length);
   b = b.substring(0, length);

   return a == b;
}
于 2010-01-24T18:30:01.227 に答える