javascript - jQuery用阿拉伯数字数组替换英文数字数组

标签 javascript jquery arrays arabic

这个类在我的页面上有很多 span

<span class="price">AED &nbsp;2129</span>
<span class="price">AED &nbsp;4129</span>

我想使用 jQuery 查找所有跨度,然后将 AED 替换为阿拉伯语单词 Dirham,并将数字替换为阿拉伯数字。

这是我已经尝试了几个小时的当前代码。

jQuery('span.price').val(function(i,val) {

    // text
    var en_currency = "AED";
    var ar_currency = "درهم";

    // array
    var f = ['0','1','2','3','4','5','6','7','8','9', en_currency];
    var r = ['٠','١','٢','٣','٤','٥','٦','٧','٨','٩', ar_currency];

    var valArray = val.split(' ');
    jQuery.each(valArray, function(i,v){
       var inF = jQuery.inArray(v, f);
       if(inF !== -1){
         valArray[i] = v.replace(f[inF], r[inF]);
       }
    });
    return valArray.join(' ');
});

最佳答案

您需要使用 text() 不是 val() , val() span text() 的情况下用于获取或设置表单字段 是必需的。然后您可以使用 replace() 中的回调来简化您的代码

// text
var en_currency = "AED";
var ar_currency = "درهم";

// array
var f = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
var r = ['٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩'];


jQuery('span.price').text(function(i, val) {
  return val.replace(en_currency, ar_currency).replace(/\d/g, function(m) {
    return r[f.indexOf(m)];
  })
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<span class="price"> AED 2312 </span>
<span class="price"> AED 1023 </span>

关于javascript - jQuery用阿拉伯数字数组替换英文数字数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32987931/

相关文章:

javascript - 使用 loadGeoJSON 时未捕获类型错误

javascript - 使用 node.js 开发丰富的应用程序

javascript - 在 Javascript 中访问多维对象时使用通配符

javascript - 在 SailsJs 中同时开发 Rest API 和服务器端渲染

javascript - 在iPad上使用JavaScript复制到剪贴板

javascript - 如何在网站上获取 Instagram feed

javascript - 无法在 jquery-confirm 中设置宽度?

javascript - django使用ajax从数据库检索数据并更新部分

c - 在冒泡排序中使用第二个for循环

css - SASS:如何忽略循环