The code work properly here .. but according to problem its not work properly actually I want to validate the 00-00-00-0000 format a text in digit/alpha .. but this code work only first time fill the value then its work correct but after the clear text the fill the value validation work not properly.
var v = "0";
var v1 = "0";
var v2 = "0";
function myFunction() {
var x = document.getElementById("vname");
x.value = x.value.toUpperCase();
var add = "-";
var string = x.value;
var str = "";
var len = string.length;
if (len > 13) {
x.value = string.substring(0, 13);
}
if (len > 2 && v == "0") {
var str = x.value;
x.value = setCharAt(str, 2, '-');
v = "1";
}
if (len > 5 && v1 == "0") {
var str = x.value;
x.value = setCharAt(str, 5, '-');
v1 = "1";
}
if (len > 8 && v2 == "0") {
var str = x.value;
x.value = setCharAt(str, 8, '-');
v2 = "1";
}
}
function setCharAt(str, index, chr) {
if (index > str.length - 1) return str;
return str.substr(0, index) + chr + str.substr(index + 1);
}
<input type="text" oninput="myFunction()" id="vname" />