JSFiddle - React, Tailwind, and code Playground

by cmruser

HTML

<input type="text" />

JavaScript

if (window.performance) {
  console.info("window.performance work's fine on this browser");
}
if (performance.navigation.type == 1) {
  console.info( "This page is reloaded" );
} else {
  console.info( "This page is not reloaded");
}

if (sessionStorage.getItem("is_reloaded")) alert('Reloaded!');

sessionStorage.setItem("is_reloaded", true);

window.onbeforeunload = function(e) {
  alert('reload');
};

jQuery(window).bind("unload", function() { console.log('back')});

function format(value) {
	// regex yyyy-mm-dd
  var regexdate = /^\d{4}\-\d{1,2}\-\d{1,2}$/;
  // regex mm-dd-yyyy
  var regexdash = /^\d{1,2}\-\d{1,2}\-\d{4}$/;
  // regex mm/dd/yyyy
  var regexslash = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
  // regex /Date(1224043200000)/
  var regexjson = /^\/Date\(/;

  var date = new Date(value);

  if(regexjson.test(value)) {
    var pattern = /Date\(([^)]+)\)/;
    date = new Date(parseFloat(pattern.exec(value)[1]));
  }

  var day = ("0" + date.getDate()).slice(-2);
  var month = ("0" + (date.getMonth() + 1)).slice(-2);
  var year = date.getFullYear();

  if(regexdate.test(value) || regexdash.test(value) || regexslash.test(value) || regexjson.test(value)) {
    value = month + "/" + day + "/" + year;	
  } else {
    value = '';
  }

  return value;
}

$('input').on('change', function() {
	var val = $(this).val();
  var isdate = (new Date(val) !== "Invalid Date") && !isNaN(new Date(val));
  var input = $('<input type="date" />');

  // if type text or not support date html5
  if ($(this).type == "text" || input[0].type == "text") {
    // check isdate
    if(isdate) {
      $(this).val(format(val));
    } else {
      $(this).val('');
    }
  }

  alert(Date.parse(val));
});