相当于C strncmp的JavaScript(比较字符串的长度)

相当于C strncmp的JavaScript(比较字符串的长度),javascript,string,string-matching,Javascript,String,String Matching,JavaScript中是否有与C函数strncmp等价的函数strncmp接受两个字符串参数和一个整数length参数。它将比较这两个字符串的lengthchars,并确定它们在length范围内是否相等 JavaScript是否具有等效的内置函数?您始终可以先比较字符串,然后再进行比较。您可以轻松构建该函数: function strncmp(str1, str2, n) { str1 = str1.substring(0, n); str2 = str2.substring(0, n

JavaScript中是否有与C函数
strncmp
等价的函数
strncmp
接受两个字符串参数和一个整数
length
参数。它将比较这两个字符串的
length
chars,并确定它们在
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 ));
}

函数结尾处三元的替代方法可以是方法,例如
返回str1.localeCompare(str2)

没有,但您可以找到一个,以及


事实并非如此。您可以将其定义为:

function strncmp(a, b, n){
    return a.substring(0, n) == b.substring(0, n);
}

自ECMAScript 2015以来,有:

这涵盖了一个非常常见的用例,其中比较的长度是
searchString
的长度,并且只需要一个布尔返回值(
strcmp()
返回一个整数以指示相对顺序。)


还包含for
String.prototype.startsWith()

我构建它时有点不同,但谢谢。只是想确保我没有首先重新发明轮子。实际上它不是等价的(它只返回0,-1或1,c函数返回更多的值),但我认为在大多数情况下它足够了
substring
substr
快。
function strncmp(a, b, length) {
   a = a.substring(0, length);
   b = b.substring(0, length);

   return a == b;
}
function strncmp(a, b, n){
    return a.substring(0, n) == b.substring(0, n);
}
str.startsWith(searchString[, position])