如何在阿拉伯语 JavaScript 中用数组中的两个匹配单词替换两个单词
How to replace two words with two matching words from an array in Arabic JavaScript?
>我在一个数组中包含了英语月份,在一个数组中也有一周中的几天。
我想在匹配的数组索引中用阿拉伯语替换英语。这是我的代码。干净简单,但它不能用。我正在使用两个替换。
// English
var en_months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
var en_days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']
// Arabic
var ar_months = ['كانون الثاني','شباط','آذار','نيسان','أيار','حزيران','تموز','آب','أيلول','تشرين الأول','تشرين الثاني','كانون الأول'];
var ar_days = ['الأحَد','الإثْنَين','الثَلاثاء','الأربَعاء','الخَميس','الجُمُعة','السَبْت']
// GO FOR IT
jQuery("span.date").text(function(i, val) {
return val.replace(en_months, ar_months);
return val.replace(en_days, ar_days);
});
这是跨度。 <span class="date">Wednesday, October 7th, 2015</span>
页面上有一些。
对于替换,您可以使用 RegExp
,RegExp
您可以将模式设置为字符串,我已经在我的示例中完成了,我用.join
方法将en_months
转换为字符串,您还可以看到返回可以找到给定元素的第一个索引indexOf
,例如,如果数组中有"十月",则返回 9, 然后通过这个索引,我从ar_months
或ar_days
中获取元素,并从.replace
方法返回此元素
// English
var en_months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
var en_days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']
// Arabic
var ar_months = ['كانون الثاني','شباط','آذار','نيسان','أيار','حزيران','تموز','آب','أيلول','تشرين الأول','تشرين الثاني','كانون الأول'];
var ar_days = ['الأحَد','الإثْنَين','الثَلاثاء','الأربَعاء','الخَميس','الجُمُعة','السَبْت']
// GO FOR IT
$("span.date").text(function(i, val) {
val = val.replace(new RegExp(en_months.join('|')), function (match) {
return ar_months[en_months.indexOf(match)] || match;
});
val = val.replace(new RegExp(en_days.join('|')), function (match) {
return ar_days[en_days.indexOf(match)] || match;
});
return val;
});
.date {
direction: rtl;
display: inline-block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="date">Wednesday, October 7th, 2015</span>
您必须遍历所有可能的值并一次替换一个。
并且函数的执行在第一次return ...
后停止。
jQuery("span.date").text(function() {
var text = val,
i;
for (i = 0; i < en_months.length; i++) {
text = text.replace(en_months[i], ar_months[i]);
}
for (i = 0; i < en_days.length; i++) {
text = text.replace(en_days[i], ar_days[i]);
}
return text;
});
小提琴
相关文章:
- 两个单词之间的Javascript差异
- 如何删除两个单词之间的字符串
- 文本框中需要两个单词,使用AngularJS
- 如何获得前两个单词
- 我在angular JS中选择了一个默认选项,并删除了两个单词之间的下划线
- Javascript正则表达式匹配多个单词中至少一个以数字开头的单词,但至少匹配两个单词
- 如何将 java 类名更改为两个单词
- 在两个单词之间应用正则表达式
- 选择 h2 标签的前两个单词并换行 span 标签
- 如果突出显示某个单词,并且用户单击了连接单词,请突出显示这两个单词
- 谷歌邮件应用程序脚本中的正则表达式困难 - 在两个单词之间选择单词
- JQUERY 如果字符串包含两个单词
- MongoDB 正则表达式找到两个单词,它们之间正好有 n 个或更少的单词
- 输入字段中不超过两个单词
- 获取两个单词之间的每个字符串
- 替换两个单词之间的文本
- 如何使用createTextRange在两个不同的文本区域中选择两个单词
- 在javascript中包含两个单词的attr id
- 如何在两个单词之间提取最少的字符
- 在两个单词后插入新行