javascript比较字符串区分大小写
javascript compare strings case sensative
我想在两个字符串之间实现区分大小写的比较。以下是我到目前为止所做的,它运行得不太好
function compare(x,y){
for (var i = 0; i < Math.min(x.length, y.length); i++){
var xc = x[i];
var yc = y[i];
if (xc == yc)
continue;
var xclow = x.toLowerCase();
var yclow = y.toLowerCase();
if (xclow == yclow)
return xc < yc ? -1 : 1
else
return xclow < yclow ? -1 : 1;
}
}
如果我做console.log(compare("Kk","kk"));
,我得到的是-1,但如果我做了console.log(compare("Kka","kk"));
,我得到了1,我不知道为什么。
为什么不只使用"Kk" === "kk"
?
function compare(x, y) {
return x === y;
// or return x === y ? 1 : -1
}
有两个打字错误,您写的是x.toLowerCase();
而不是xc.toLowerCase();
和y.toLowerCase();
而不是yc.toLowerCase();
function compare(x, y) {
for (var i = 0; i < Math.min(x.length, y.length); i++) {
var xc = x[i];
var yc = y[i];
if (xc == yc)
continue;
var xclow = xc.toLowerCase();
var yclow = yc.toLowerCase();
if (xclow == yclow)
return xc < yc ? -1 : 1
else
return xclow < yclow ? -1 : 1;
return x.length.localeCompare(y.length);
}
}
顺便说一下,最后一个返回语句是不必要的,因为if和else都包含返回语句。
有更简单的方法可以做到这一点,但我认为你正在努力独自完成这一点。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare
类似于:
console.log('a'.localeCompare('A', { sensitivity: 'variant' }));
如果需要,您可以添加区域设置等。
相关文章:
- JavaScript Regex(?i)选项中字符串大小写不敏感的部分不起作用
- 如何在JavaScript中按大小写拆分字符串
- Javascript 将 unicode 字符串转换为“标题大小写”
- 正则表达式匹配整个字符串,但大小写不敏感
- 将字符串添加到不区分大小写的 RegExp 中替换的事物开始
- javascript从字符串创建不区分大小写的regex
- 将句子大小写应用于可能包含HTML的字符串
- 使用简单的角度滤波器来替换输入字符串中某些字符串的所有出现,而不考虑大小写和空格
- 用于Cordova应用程序的Javascript SQLite-使用参数搜索,其中字符串包含子字符串大小写insenst
- 如果数组键实际上是字符串,那么数组和对象的区别是什么
- 在DOM中搜索字符串时不区分大小写
- 如何使切换大小写忽略字符串中的标点符号
- 字符串大小写转换 javascript
- 将驼峰大小写字符串转换为连字符的角度服务
- 如何交替字符串的大小写
- 创建视区会导致未捕获的语法错误:意外的字符串错误
- 在 Javascript 中将任何类型的字符串更改为标题大小写
- 切换组合大小写字符串regex和数字
- 如何在Javascript中包含一个正则表达式到切换大小写字符串
- 如何使用正则表达式在驼峰大小写字符串中插入空格