我想要显示第一个字母等于变量的所有.item
。
问题 - 如果第一个字母是本地字符而我试图替换它们 - č-ć-đ-š-ž
分别替换为c-c-d-s-z
。
我希望项目Ćao
(例如)在此代码之后变得可见,但它不起作用。
var a = 'c';
$('.item').each(function(){
var b = $(this).text().charAt(0);
var mapObj = {č:"c", ć:"c", đ:"d", š:"s", ž:"z"};
b = b.replace(/č|ć|đ|š|ž/i, function(matched){
return mapObj[matched];
});
if (b == a) {$(this).show();}
});
答案 0 :(得分:4)
您只需将.toLowerCase()
添加到返回mapObj
项目的位置:
var a = 'c';
$('.item').each(function() {
var b = $(this).text().charAt(0);
var mapObj = {
č: "c",
ć: "c",
đ: "d",
š: "s",
ž: "z"
};
b = b.replace(/č|ć|đ|š|ž/i, function(matched) {
return mapObj[matched.toLowerCase()]; // map to lowercase char
});
if (b.toLowerCase() == a.toLowerCase()) { // always compare like cases
$(this).show();
}
});
.item {
display: none;
width: 50px;
height: 50px;
background: #F00;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="item">Ćao</div>
即使您的匹配不敏感,它也不会自动转换返回的字符。
答案 1 :(得分:1)
资本Ć
和小写ć
是两个完全不同的字符。您需要相应地扩展映射表。