代码之家  ›  专栏  ›  技术社区  ›  Makram Saleh

在字符串中翻转数字

  •  0
  • Makram Saleh  · 技术社区  · 15 年前

    我有一个问题,一些阿拉伯语文本,我需要 轻弹 字符串中的数字。因此:

    "Some text written in 1982 by someone with m0123456 or 12-to-13"
    

    应该变成:

    "Some text written in 2891 by someone with m6543210 or 21-to-31"
    

    正则表达式解决方案会很好。对大字符串的优化越多越好。

    有什么提示吗?

    2 回复  |  直到 15 年前
        1
  •  1
  •   kennytm    15 年前
    theText.replace(/\d+/g, function(s:String){ return s.split("").reverse().join(""); })
    

    (免责声明:仅针对Javascript测试,不针对ActionScript。)

        2
  •  0
  •   Makram Saleh    15 年前

    谢谢@KennyTM!你的解决方案完美无瑕(经过一些调整)。

    我只需要指定regexp模式的类型,并删除第3行中的严格参数类型(:String)

    var theText = "Some text written in 1982 by someone with m0123456 or 12-to-13";
    var pattern:RegExp = /\d+/g;
    var result = theText.replace(pattern, function(s){ return s.split("").reverse().join("") })
    
    trace(result);   //Some text written in 2891 by someone with m6543210 or 21-to-31