【问题标题】:Regular Expression to Detect and Update String ( Useful to Update File Version in AssemblyInfo.cs)检测和更新字符串的正则表达式(用于更新 AssemblyInfo.cs 中的文件版本)
【发布时间】:2009-05-15 08:34:18
【问题描述】:

我有一个这种格式的字符串

1.0.x.0

我必须在 javascript 中编写一个自动递增x 的正则表达式-- 怎么做?

请注意,给出的字符串将始终采用该格式——无需测试格式有效性...

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    试试这个:

    "1.0.123.0".replace(/(\d+\.\d+\.)(\d+)(\.\d+)/, function($0, $1, $2, $3) {
        return $1 + (parseInt($2) + 1) + $3;
    });
    

    【讨论】:

      【解决方案2】:

      为什么必须是正则表达式?符号是一致的,只是略有不同;不需要正则表达式。

      function incrementStrN(str) {
          var split = str.split('.');
          split[2]++;
          return split.join('.');
      }
      incrementStrN("1.0.123.0"); // Returns "1.0.124.0"
      

      我知道它看起来不太漂亮,但它比使用正则表达式要快;加上更容易定制;例如,您可以以这样的方式实现它,以便可以更改要递增的部分:(参见 @param sec

      function incrementStrN(str, sec) {
           var split = str.split('.');
           split[sec-1]++;
           return split.join('.');
      }
      
      incrementStrN("1.0.123.0", 1); // Returns "2.0.123.0"
      incrementStrN("1.0.123.0", 3); // Returns "1.0.124.0"
      

      【讨论】:

      • 这种平淡无奇的意见不会让你有任何收获。我和任何人一样喜欢正则表达式,但有时间和地点。事实是,在这种情况下,正则表达式会更慢......
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-27
      • 2020-06-25
      • 2010-12-04
      相关资源
      最近更新 更多