gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:53:18 25 4
gpt4 key购买 nike

我知道这个问题已经在这里回答了很多次,但我仍然没有得到确切的答案。我需要通过一些javascript将英文字母转换为波斯语/阿拉伯语字母,但不是整个页面,而只是对于一个股利或更多。就像只针对特定类(class)。

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

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

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

例如:

<div class="demo">12345</div> 

应该改为

<div class="demo">۱۲۳۴۵</div>

最佳答案

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

要实现您的要求,您可以将要翻译的每个 HTML 元素的文本转换为一个数组并逐个遍历它们,通过 Regex 检查每个字符以查看是否找到了数字。如果是,您可以在将数组重新组合在一起之前进行简单的替换。像这样:

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('');
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="translate">Dummy text with some 123 numbers in 390981 it.</div>
<div class="translate">Dummy text with some 67898 numbers in 109209734.09 it.</div>


更新 - 2020-03

这是使用 ES6 语法的上述逻辑的较短版本。请注意,这适用于所有现代浏览器。它唯一不起作用的地方是在任何版本的 IE 中。

var arabicNumbers = ['۰', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩'];
$('.translate').text((i, v) => v.split('').map(c => parseInt(c) ? arabicNumbers[parseInt(c)] : c).join(''));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="translate">Dummy text with some 123 numbers in 390981 it.</div>
<div class="translate">Dummy text with some 67898 numbers in 109209734.09 it.</div>

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com