我正在使用以下 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/