在阿拉伯字符串上使用替换时的奇怪行为
Weird behaviour when using replace on arab string
我试图理解为什么在这个片段中,对于给定的字符串
عروض تبدأ من $minprice
我明白了
عروض تبدأ من 21
返回:(
如有任何帮助,我们将不胜感激!谢谢:)
var regExp = new RegExp(/$minprice/, 'ig');
var string = "عروض تبدأ من $minprice";
console.group();
console.log(
"new string",
string.replace(regExp, (matched, offset, originalString) => {
console.log('originalString', originalString);
return '21';
})
);
console.groupEnd();
您可能对 $ 符号位于数字右侧感到不高兴。别灰心:如果你上网搜索一下,你会发现很多阿拉伯语的权威网站,$和西文数字的相对位置是这样的,甚至是混合的3
和 123$
在同一页上。
至于代币的顺序,结果绝对正确,读者会期望价格在单词的左边,因为阿拉伯语是RTL语言。在许多国家/地区,他们也希望看到印度数字,但可能不会附加美元符号。
美元符号相对于数字的位置取决于跨度的方向性。 IE。如果您将字符串包装在 <span dir="rtl">
中,它将看起来与 <span dir="ltr">
不同。你可以试试 return '21'
和 '5821$'
看看哪个最适合你。
我试图理解为什么在这个片段中,对于给定的字符串
عروض تبدأ من $minprice
我明白了
عروض تبدأ من 21
返回:(
如有任何帮助,我们将不胜感激!谢谢:)
var regExp = new RegExp(/$minprice/, 'ig');
var string = "عروض تبدأ من $minprice";
console.group();
console.log(
"new string",
string.replace(regExp, (matched, offset, originalString) => {
console.log('originalString', originalString);
return '21';
})
);
console.groupEnd();
您可能对 $ 符号位于数字右侧感到不高兴。别灰心:如果你上网搜索一下,你会发现很多阿拉伯语的权威网站,$和西文数字的相对位置是这样的,甚至是混合的3
和 123$
在同一页上。
至于代币的顺序,结果绝对正确,读者会期望价格在单词的左边,因为阿拉伯语是RTL语言。在许多国家/地区,他们也希望看到印度数字,但可能不会附加美元符号。
美元符号相对于数字的位置取决于跨度的方向性。 IE。如果您将字符串包装在 <span dir="rtl">
中,它将看起来与 <span dir="ltr">
不同。你可以试试 return '21'
和 '5821$'
看看哪个最适合你。