【问题标题】:How to split a number after n digits in javascript?如何在javascript中的n位数字后拆分一个数字?
【发布时间】:2016-07-09 05:08:44
【问题描述】:

我有一个数字 2802,它作为字符串存储在后端。我想将此数字分成 28 和 02 两部分,应显示为日期 28/02?如何在它们之间使用“/”?

【问题讨论】:

  • 再举一些例子更好的回答,'112','028'之类的,它总是4位数吗?
  • "2802".substring(0, 2) + "/" + "2802".substring(2);
  • @Niklesh 我有一个 2802 或 0103 的数字。我想要 / 在第一个两个和第二个两个数字之间。
  • 您是在询问简单的字符串操作吗? var str = "1234";var res = str.substr(0, 2)+"/"+str.substr(2,4);
  • 字符串的大小总是4吗?

标签: javascript string substring


【解决方案1】:

试试这个:你可以使用substring,如下所示。 substring 用于获取起始索引和结束索引之间的字符串。在您的情况下,从 0 到 1 再从 2 到 3 获取字符串。

var str = "2802";
str = str.substring(0,2) + "/" + str.substring(2,4);
alert(str);

More information on Substring

【讨论】:

  • 谢谢。这就是我需要的
  • 很高兴为您提供帮助:)
【解决方案2】:

正则表达式的解决方案

var res = "2802".match(/\d{2}/g).join('/');

document.write(res);

【讨论】:

    【解决方案3】:

    您是在询问简单的字符串操作吗?

    var str = "1234";
    var res = str.substr(0, 2)+"/"+str.substr(2,4);
    

    【讨论】:

      【解决方案4】:

      你可以这样做:

      var str = "2802";
      
      str = str.split('').map(function(el, i){
         if(i == 2){ el = '/'+el}
        return el;
      });
      document.querySelector('pre').innerHTML = str.join('');
      <pre></pre>

      带正则表达式:

      var str = "2802";
      
      str = str.replace(/(.{1,2}$)/gi, '/$1');
      
      document.querySelector('pre').innerHTML = str;
      <pre></pre>

      【讨论】:

        【解决方案5】:
        var str = "2802";
        var output = [str.slice(0, 2), str.slice(2)].join('/');
        

        【讨论】:

        • 我推荐output = [str.slice(0, 2), str.slice(2)].join('/');
        【解决方案6】:

        在这种情况下,考虑 2802,28 是日期,02 是月份

        这里112028什么是日期和月份?

        【讨论】:

        • 第一个两个数字是日期,第二个是月份。对于 112,它存储为 0112。对于 028,它在数据库中存储为 0208。
        • 上面可以看到解决方案。 stackoverflow.com/questions/36152258/…
        【解决方案7】:

        一个更通用的解决方案可能是

        var num = 2802;
        var output = String(num).match(new RegExp('.{1,2}', 'g')).join("/");
        

        用哪个数字替换 2 以将数字拆分为 n 位。

        var n = 2;
        var output = String(num).match(new RegExp('.{1,'+n+'}', 'g'));
        

        【讨论】:

          【解决方案8】:
          var db_date = '112';
          var date_str = '';
          if(db_date.slice(0,1)==0){
              var date_val = db_date.slice(0,2);
              var month_val = db_date.slice(2,3);
          
              if(month_val<=9){
                  month_val = '0'+month_val;
              }
          }else{
              var date_val = db_date.slice(0,1);
              date_val = parseInt(date_val);
              if(date_val<=9){
                  date_val = date_val.toString();
                  date_val = '0'+date_val;
              }
              var month_val = db_date.slice(1,3);
          }
          alert(date_val+'/'+month_val);
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-05-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-05-21
            • 1970-01-01
            • 2012-09-23
            • 1970-01-01
            相关资源
            最近更新 更多