Javascript要插入" /"在输出数字中格式化日期

时间:2017-09-22 20:27:07

标签: javascript jquery

基本上我有8位数的简单无格式日期输出,如下所示:

<div class="date">20170822</div>

寻找一个简单的js / jquery脚本来插入&#34; /&#34;在第4和第6位数之后:

<div class="date">2017/08/22</div>

谢谢,任何帮助表示感谢:)

3 个答案:

答案 0 :(得分:2)

您可以使用正则表达式 "20170822".replace(/^([0-9]{4})([0-9]{2})([0-9]{2})/, "$1/$2/$3");

&#13;
&#13;
var els = document.querySelectorAll(".date");
els.forEach(function(el){
  var d = el.innerHTML;
  el.innerHTML= d.replace(/^([0-9]{4})([0-9]{2})([0-9]{2})/, "$1/$2/$3");
  
});
&#13;
<div class="date">20170822</div>
<div class="date">20170102</div>
<div class="date">20170408</div>
<div class="date">20170310</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以使用简单的j来执行此操作

&#13;
&#13;
$(document).ready(function(){
 $(".date").each(function(i,elem) {
    var divdate = $(this).html();
    var lenght = divdate.length;
    var newdate = '';
    
    for(var i = 0;i<lenght;i++){
       if(i==3){
       
        newdate +=  divdate[i] +'/';
       }
       else
       if(i==5){
          newdate +=  divdate[i] +'/';
       }
       else{
       newdate += divdate[i];
     }
    }
    $(this).html(newdate);});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div class="date">20170822</div>
<div class="date">20191229</div>
<div class="date">20161025</div>
<div class="date">20150620</div>
&#13;
&#13;
&#13;

答案 2 :(得分:-1)

需要将/个字符插入到字符集中。 JavaScript数组有一个 .splice() 方法来做这种事情,但字符串不是真正的数组,它们是“类似数组”的对象。但是,它们可以很容易地转换为真正的数组。

来自 MDN

  

类似数组的对象

     也可以调用

slice方法来转换类似于Array的对象/   集合到一个新的数组。您只需将方法绑定到对象。   函数内部的参数是“类似数组”的示例   对象

完成后, Array.splice() 方法将解决问题。

var divs = document.querySelectorAll(".date");  // Get all the divs into a node-list (array-like object)

// Convert the node list to an array (so Array.forEach can be used) and loop over the array
[].slice.call(divs).forEach(function(d){
  var sAry = [].slice.call(d.textContent); // Convert the text content of the div to an array

  // Insert the / at the index positions
  sAry.splice(4,0,"/");
  sAry.splice(7, 0, "/");

  d.textContent = sAry.join("");  // Update the div with the formatted value
});
<div class="date">20170822</div>
<div class="date">20170822</div>
<div class="date">20170822</div>
<div class="date">20170822</div>
<div class="date">20170822</div>
<div class="date">20170822</div>