仅为指定的div将英文数字转换为波斯语/阿拉伯语

我知道这个问题已在这里多次回复,但我还没有得到确切的答案..我需要通过一些javascript将英文字母转换为波斯语/阿拉伯字母,但不是整个页面,而是仅用于div或者更多。 只喜欢特定的课程。

我遇到过这些代码,但不知道哪一个最好用。

function convert($string) { $persian = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'); $num = range(0, 9); return str_replace($persian, $num, $string); } 

我需要确切的源只在一个div类上实现。

例如:

 
12345

应该改为

 
۱۲۳۴۵

我不相信你提供的任何一个代码示例都是JavaScript,第一个是语法上很接近,但缺少range()方法和array()定义中的new 。 第二个是Java。

为了达到您的要求,您可以将要翻译的每个HTML元素的文本转换为数组并逐步执行它们,通过Regex检查每个字符以查看是否找到了数字。 如果是,您可以在将arrays重新连接起来之前进行简单的替换。 像这样的东西:

 var arabicNumbers = ['۰', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩']; $('.translate').text(function(i, v) { var chars = v.split(''); for (var i = 0; i < chars.length; i++) { if (/\d/.test(chars[i])) { chars[i] = arabicNumbers[chars[i]]; } } return chars.join(''); }) 

示例小提琴

你可以用

 $('.translate').text(function(i, v) { return convertToPersianNumber(v) }) 

以及此链接中的以下代码

 var persianDigits = "۰۱۲۳۴۵۶۷۸۹"; var persianMap = persianDigits.split(""); function convertToEnglishNumber(input){ return input.replace(/[\u06F0-\u06F90]/g, function(m){ return persianDigits.indexOf(m); }); } function convertToPersianNumber(input){ return input.replace(/\d/g,function(m){ return persianMap[parseInt(m)]; }); } // tests console.log(convertToEnglishNumber("۴۳۵")); console.log(convertToEnglishNumber("۶۲۷۰۱")); console.log(convertToEnglishNumber("۳۵۴۳")); console.log(convertToPersianNumber("216541")); console.log(convertToPersianNumber("16549")); console.log(convertToPersianNumber("84621")); 

要在React中使用,请使用此组件

 import React, {Component} from "react"; class PersianNumber extends Component { render() { let en_number = this.props.number.toString(); let persianDigits = "۰۱۲۳۴۵۶۷۸۹"; let persianMap = persianDigits.split(""); let persian_number = en_number.replace(/\d/g, function (m) { return persianMap[parseInt(m)]; }); return ( {persian_number} ) } } export default PersianNumber 

将文件名保存为: PersianNumber.jsx并使用如下:

  

尝试使用angularJS版本,它具有很多function,

GitHub – mohebifar / angular-persian:angular.js的波斯工具

 
{{vm.value | pNumber}}

注意:此解决方案非常易于使用,但基于angularJS。