javascript - 替换本地字符并将其与变量进行比较

标签 javascript jquery replace compare

我想显示所有第一个字母等于变量的.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();}
});

最佳答案

您只需将 .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>

即使您的匹配不敏感,它也不会自动转换返回的字符。

关于javascript - 替换本地字符并将其与变量进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41901957/

相关文章:

没有正则表达式反向引用的 Ruby 字符串子

javascript - 如何使用对象字面量语法定义函数?

javascript - jquery通过css自定义select2组件

javascript - 发送由 onClick 函数触发的特定元素

javascript - 提交表单失败时运行函数

regex - 一个 Vim 命令,用于插入一段文本以匹配行,除非它已经存在

正则表达式以及用数字和文本替换

javascript - 工具提示显示不同元素的相同消息

javascript - 我如何开始使用 mocha 并进行第一次测试?

javascript - 输入 :checkbox unchecked and with ID 的 Jquery 选择器