【发布时间】:2010-03-17 12:18:43
【问题描述】:
anyboyd 可以帮我在 javascript 中拆分这个日期数字,这样当它输出到屏幕时,它在第 4 和第 5 数字以及第 6 和第 7 数字之间有斜线,以便 vxml 语音浏览器可以理解.该数字可以是任何值,因此我需要它适用于任何八位数字。
像这样:
20100820
2010/08/20
非常感谢
【问题讨论】:
标签: javascript split numbers
anyboyd 可以帮我在 javascript 中拆分这个日期数字,这样当它输出到屏幕时,它在第 4 和第 5 数字以及第 6 和第 7 数字之间有斜线,以便 vxml 语音浏览器可以理解.该数字可以是任何值,因此我需要它适用于任何八位数字。
像这样:
20100820
2010/08/20
非常感谢
【问题讨论】:
标签: javascript split numbers
如果你有一个简单的字符串:
var a = '23452144';
alert(a.substring(0,4) + '/' + a.substring(4,6) + '/' + a.substring(6));
对于一个数字,你可以使用
var s = a.toString();
对于包含许多此类日期的长字符串,这将替换它们的格式(例如,如果您想要 dd/mm/yyyy 格式,您可以轻松地使用它):
a.replace(/\b(\d{4})(\d{2})(\d{2})\b/g, "$1/$2/$3")
【讨论】:
您可以为此使用 substring-function。假设您始终具有相同的输入格式(例如 yyyymmdd),则可以这样做:
var dateString = "20100820";
var newValue = dateString.substring(0,4) + "/" + dateString.substring(4,6) + "/" + dateString.substring(6,8);
关于子字符串函数的更多信息可以在:http://www.w3schools.com/jsref/jsref_substring.asp
【讨论】:
使用这个javascript:
var objRegExp = /(\d{4})(\d{2})(\d{2})/;
var ourdate = "12334556";
var formateddate = ourdate.replace(objRegExp, "$1/$2/$3");
现在 formateddate 将具有所需的格式化日期字符串。
【讨论】:
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);
【讨论】:
alert(20100820..toString().replace(/^(.{4})(.{2})/, "$1/$2/"))
附言。您需要接受一些答案(详见https://stackoverflow.com/faq)。
【讨论】:
var date ='20100317';
var output = date.replace(/(\d{4})(\d{2})(\d{2})/i,"$1/$2/$3");
alert(output);
【讨论】:
<script> 在这里帮不了你,但你可以使用 <code> 和 <pre> (就像在任何网站上一样,当你想到它时,你不想运行脚本......)