Reputation: 560
Can anyboyd help me split up this date number in javascript so that when it is outputted to the screen it has slashes between the 4th and 5th number and the 6th and 7th number, so that it can be understood by a vxml voice browser. The number can be any value so i need it to work for any eight digit number.
Like so:
20100820
2010/08/20
Many thanks
Upvotes: 4
Views: 7078
Reputation: 138017
If you have a simple string:
var a = '23452144';
alert(a.substring(0,4) + '/' + a.substring(4,6) + '/' + a.substring(6));
For a number, you can use
var s = a.toString();
For a long string with many such dates, this will replace their formats (you can easily play with it if you want a dd/mm/yyyy format, for example):
a.replace(/\b(\d{4})(\d{2})(\d{2})\b/g, "$1/$2/$3")
Upvotes: 7
Reputation: 5335
Use this javascript :
var objRegExp = /(\d{4})(\d{2})(\d{2})/;
var ourdate = "12334556";
var formateddate = ourdate.replace(objRegExp, "$1/$2/$3");
Now formateddate will have the require formatted date string.
Upvotes: 1
Reputation: 912
var date ='20100317';
var output = date.replace(/(\d{4})(\d{2})(\d{2})/i,"$1/$2/$3");
alert(output);
Upvotes: 0
Reputation: 53940
alert(20100820..toString().replace(/^(.{4})(.{2})/, "$1/$2/"))
PS. You need to accept some answers (see https://stackoverflow.com/faq for details).
Upvotes: 0
Reputation: 4702
You can use the substring-function for that. Assuming you always have the same input-format (eg. yyyymmdd), it can be done this way:
var dateString = "20100820";
var newValue = dateString.substring(0,4) + "/" + dateString.substring(4,6) + "/" + dateString.substring(6,8);
more on the substring function can be found at: http://www.w3schools.com/jsref/jsref_substring.asp
Upvotes: 3
Reputation: 29267
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);
Upvotes: 0