在JavaScript函数strncmp
中是否存在JavaScript的等价物? strncmp
接受两个字符串参数和一个整数length
参数。它将两个字符串进行比较,最多为length
个字符,并确定它们是否相等length
。
JavaScript是否具有等效的内置函数?
答案 0 :(得分:10)
您可以轻松构建该功能:
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);
答案 1 :(得分:3)
没有。您可以将其定义为:
function strncmp(a, b, n){
return a.substring(0, n) == b.substring(0, n);
}
答案 2 :(得分:2)
它没有,但您可以找到一个here以及many other useful javascript functions。
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 ) );
}
答案 3 :(得分:1)
首先你可以substring字符串,然后进行比较。
答案 4 :(得分:1)
function strncmp(a, b, length) {
a = a.substring(0, length);
b = b.substring(0, length);
return a == b;
}
答案 5 :(得分:0)
自ECMAScript 2015以来,有startsWith()
:
searchString
这涵盖了非常频繁的用例,其中比较的长度是strcmp()
的长度,并且只需要布尔返回值(String.prototype.startsWith()
返回一个整数来表示相对顺序,而不是。)
Mozilla doc page还包含[png @ 0x50f0700] Invalid PNG signature 0x2020202020202020.
Error while decoding stream #0:0: Invalid data found when processing input
的{{3}}。