如何将波斯语(Farsi)日期中的数字字形转换为阿拉伯数字字形?
实现方案
你需要的效果可以通过固定字符映射替换实现,波斯语数字和阿拉伯数字有一一对应的Unicode编码,替换过程不会改动日期的实际年月日数值,仅修改数字的显示字形:
核心代码修改
你只需要新增一个数字转换函数,对toLocaleDateString返回的波斯语日期字符串做一次替换处理即可,完整代码如下:
JavaScript 代码
// 波斯语数字转阿拉伯数字工具函数 function convertFaNumToArNum(str) { const faNumMap = ['۰','۱','۲','۳','۴','۵','۶','۷','۸','۹']; return str.replace(/[۰-۹]/g, match => faNumMap.indexOf(match)); } var today = new Date().toLocaleDateString('fa-IR'); var field = document.querySelector('#tday'); // 转换后再赋值给输入框 field.value = convertFaNumToArNum(today);
HTML 代码
无需修改原有代码:
<input type="text" name="tday" class="form-control w-100 text-center d-inline-block" id="tday">
效果说明
转换前的波斯语日期۱۴۰۰/۰۶/۳۱经过处理后,输出结果就是你需要的1400/06/31,日期数值完全和原始波斯语日期一致,仅数字显示字形变更。
内容的提问来源于stack exchange,提问作者smmmm
相关产品推荐
相关产品推荐

