【问题标题】:javascript number splitjavascript数字拆分
【发布时间】:2010-03-17 12:18:43
【问题描述】:

anyboyd 可以帮我在 javascript 中拆分这个日期数字,这样当它输出到屏幕时,它在第 4 和第 5 数字以及第 6 和第 7 数字之间有斜线,以便 vxml 语音浏览器可以理解.该数字可以是任何值,因此我需要它适用于任何八位数字。

像这样:

20100820

2010/08/20

非常感谢

【问题讨论】:

    标签: javascript split numbers


    【解决方案1】:

    如果你有一个简单的字符串:

    var a = '23452144';
    alert(a.substring(0,4) + '/' + a.substring(4,6) + '/' + a.substring(6));
    

    对于一个数字,你可以使用

    var s = a.toString();
    

    对于包含许多此类日期的长字符串,这将替换它们的格式(例如,如果您想要 dd/mm/yyyy 格式,您可以轻松地使用它):

    a.replace(/\b(\d{4})(\d{2})(\d{2})\b/g, "$1/$2/$3")
    

    【讨论】:

    • 当你从别人的答案中借鉴想法时,最好提供一个信用(比如“按照xxx的答案,你也可以......”),你不觉得吗?
    • @stereofrog - 绝对。我在 Pbirkoff 之前发布了字符串版本。我的正则表达式有点晚了,但还是决定发布它,因为它更好(它是唯一一个适用于具有多个匹配项的字符串)。我复制其中任何一个的想法都是一个大胆的指责,我对此感到愤怒。
    • 我认为你误解了我的评论,Kobi。借用别人的想法本身并没有错 - 最后,我们在这里分享我们的想法并相互学习。但如果这样做,最好提供一个功劳,确实如此。
    【解决方案2】:

    您可以为此使用 substring-function。假设您始终具有相同的输入格式(例如 yyyymmdd),则可以这样做:

    var dateString = "20100820";
    var newValue = dateString.substring(0,4) + "/" + dateString.substring(4,6) + "/" + dateString.substring(6,8);
    

    关于子字符串函数的更多信息可以在:http://www.w3schools.com/jsref/jsref_substring.asp

    【讨论】:

      【解决方案3】:

      使用这个javascript:

      var objRegExp = /(\d{4})(\d{2})(\d{2})/;
      var ourdate = "12334556";
      var formateddate = ourdate.replace(objRegExp, "$1/$2/$3");
      

      现在 formateddate 将具有所需的格式化日期字符串。

      【讨论】:

        【解决方案4】:
        var s = 20100820 + "";  // make the integer a string
        var t = "";
        for(var i=0; i<s.length; i++) {
            if(i == 4) // we're at the 4th char
                t += "/";
        
            if(i == 6) // we're at the 6th char
                t += "/";
        
            t += s.charAt(i);
        
        }
        
        console.log(t);
        

        【讨论】:

          【解决方案5】:
          alert(20100820..toString().replace(/^(.{4})(.{2})/, "$1/$2/"))
          

          附言。您需要接受一些答案(详见https://stackoverflow.com/faq)。

          【讨论】:

          • PS真的应该是评论。
          【解决方案6】:
          var date ='20100317';
          var output = date.replace(/(\d{4})(\d{2})(\d{2})/i,"$1/$2/$3");
          alert(output);
          

          【讨论】:

          • Eric - 欢迎来到 Stack Overflow。您可以通过单击代码按钮 (101010) 来选择代码来格式化代码。 &lt;script&gt; 在这里帮不了你,但你可以使用 &lt;code&gt;&lt;pre&gt; (就像在任何网站上一样,当你想到它时,你不想运行脚本......)
          猜你喜欢
          • 1970-01-01
          • 2011-12-08
          • 2012-05-14
          • 1970-01-01
          • 1970-01-01
          • 2018-06-02
          • 2011-10-09
          • 1970-01-01
          相关资源
          最近更新 更多