JavaScript 中是否有与 C 函数等价的功能strncmp
? strncmp
接受两个字符串参数和一个整数length
参数。它将比较两个字符串的最多length
字符,并确定它们是否相等length
。
JavaScript 是否有等效的内置函数?
JavaScript 中是否有与 C 函数等价的功能strncmp
? strncmp
接受两个字符串参数和一个整数length
参数。它将比较两个字符串的最多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()
而是返回一个整数来指示相对顺序。)
您总是可以先对字符串进行子串化,然后再进行比较。
function strncmp(a, b, length) {
a = a.substring(0, length);
b = b.substring(0, length);
return a == b;
}