javascript - 将英语数字转换为波斯语

标签 javascript php html

我正在使用以下 JavaScript 将我网站上显示的所有英语数字转换为波斯语。

我知道有几种方法可以解决这个问题,我已经在网上查看并尝试了一些,但是,这个脚本做了我想要它做的事情,而且它真的很容易实现,除了我想要电话号码和日期在我的页脚中排除在转换之外并保持英语。

不确定如何在我的 PHP/HTML 页面中处理此问题。

关于第二个注意事项,当我的网站加载几秒钟时,数字以英语显示并迅速转换为波斯语。只是想知道是否有一种方法可以减少这种延迟?

这是我的代码:

<script language="JavaScript" type="text/javascript">
var replaceDigits = function() {
var map =
[
"&\#1776;","&\#1777;","&\#1778;","&\#1779;","&\#1780;",
"&\#1781;","&\#1782;","&\#1783;","&\#1784;","&\#1785;"
]
document.body.innerHTML =
document.body.innerHTML.replace(
/\d(?=[^<>]*(<|$))/g,
function($0) { return map[$0] }
);
}
</script>

<script type="text/javascript">
window.onload = replaceDigits
</script>

最佳答案

给你:)

function toFarsiNumber(n) {
    const farsiDigits = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];

    return n
      .toString()
      .split('')
      .map(x => farsiDigits[x])
      .join('');
  }

另一个版本!

function toFarsiNumber(n) {
    const farsiDigits = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];

    return n
        .toString()
        .replace(/\d/g, x => farsiDigits[x]);
}

关于javascript - 将英语数字转换为波斯语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38627024/

相关文章:

javascript - 如何保证一个类永远不会暴露在 Vaadin 客户端

javascript - 在没有 ng-repeat 的情况下使用 ng-sortable

javascript - 获取 float 在下一行的第一个元素

javascript - 如何处理字符串中的一些 HTML 标签(不是全部)?

php - 如何连续显示元素(即每行 5 个元素)

html - 居中和右对齐flexbox元素

javascript - 向除发件人以外的所有客户端发送响应

javascript - 适用于 JavaScript 的 SAP Cloud SDK : Filter on Expanded Entities

php - 未定义的属性:Illuminate\Database\Eloquent\Relations\BelongsTo::$name laravel 5.4

PHP 合并两个表并列出第一个表中的所有内容