JavaScriptにC関数に相当するものはありますstrncmp
か? strncmp
2つの文字列引数と1つの整数length
引数を取ります。2つの文字列を最大文字数で比較し、length
それらが可能な限り等しいかどうかを判断しlength
ます。
JavaScriptには同等の組み込み関数がありますか?
JavaScriptにC関数に相当するものはありますstrncmp
か? strncmp
2つの文字列引数と1つの整数length
引数を取ります。2つの文字列を最大文字数で比較し、length
それらが可能な限り等しいかどうかを判断しlength
ます。
JavaScriptには同等の組み込み関数がありますか?
その関数を簡単に作成できます。
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);
そうではありません。次のように定義できます。
function strncmp(a, b, n){
return a.substring(0, n) == b.substring(0, n);
}
そうではありませんが、他の多くの便利な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 ) );
}
ECMAScript 2015以降、次のようになりますstartsWith()
。
str.startsWith(searchString[, position])
これは、比較の長さがの長さでありsearchString
、ブール値の戻り値のみが必要な非常に頻繁なユースケースをカバーしています(strcmp()
代わりに、相対的な順序を示す整数を返します)。
Mozillaのドキュメントページには、のポリフィルも含まれていString.prototype.startsWith()
ます。
いつでも最初に文字列をサブストリングしてから比較することができます。
function strncmp(a, b, length) {
a = a.substring(0, length);
b = b.substring(0, length);
return a == b;
}