代码之家  ›  专栏  ›  技术社区  ›  clivend

在阿拉伯字符串上使用replace时的奇怪行为

  •  4
  • clivend  · 技术社区  · 6 年前

    我试图理解为什么在这段代码中,对于给定的字符串

    عروض تبدأ من $minprice
    

    我明白了

    عروض تبدأ من $5821
    

    背面:(

    任何帮助都将不胜感激!谢谢:)

    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 '$5821';
      })
    );
    console.groupEnd();
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Alex Cohn    6 年前

    也许,你会因为 符号在数字的右边。不要绝望:如果你做一个网络搜索,你会发现许多阿拉伯语的值得尊敬的网站 $ 西方的数字是这样的,甚至是混合的 $123 123$ 在同一页上

    至于代币的顺序,结果是绝对正确的,读者希望价格在单词的左边,因为阿拉伯语是RTL语言。在许多国家,他们也希望看到印地语数字,但可能不会附加美元sugn。

    方向性 <span dir="rtl"> <span dir="ltr"> . 你可以试着回去 '$5821' '5821$' 然后找出最适合你的。