使用这行代码
$("body").html($("body").html().replace(/1800/g,'6:00pm'));
我可以替换这个单词,但是如何使用此脚本使其更具动态性呢?
var getFormattedTime = function (fourDigitTime){
var hours24 = parseInt(fourDigitTime.substring(0,2));
var hours = ((hours24 + 11) % 12) + 1;
var amPm = hours24 > 11 ? 'pm' : 'am';
var minutes = fourDigitTime.substring(2);
return hours + ':' + minutes + amPm;
};
我的HTML代码就是
Your class will start at 1900, please be there by 1845.
将计入
Your class will start at 07:00pm, please be there by 06:45pm.
我试过了:
$("body").html($("body").html().replace(fourDigitTime, getFormattedTime(fourDigitTime)));
var fourDigitTime = document.getElementById('fourDigitTime').value;
var getFormattedTime = function (fourDigitTime){
var hours24 = parseInt(fourDigitTime.substring(0,2));
var hours = ((hours24 + 11) % 12) + 1;
var amPm = hours24 > 11 ? 'pm' : 'am';
var minutes = fourDigitTime.substring(2);
return hours + ':' + minutes + amPm;
};
它不起作用..
答案 0 :(得分:1)
[在EmersonF清除后编辑所有四个字母时间应该被替换]
您可以使用函数作为第二个参数来替换:
function formatTime(str, p1) {
// do something with p1
return // the formated time
}
$("body").html($("body").html().replace(/(\d?\d\d\d)/g, formatTime));
使用括号中“捕获”的字符串部分 正则表达式作为第二个参数(此处称为p1)传递给函数
有关工作示例,请参阅http://jsfiddle.net/bjelline/pb8d2/
注意:正则表达式无法告诉2015年除了四分之一 过了晚上8点,并将把这一年转换成一个时间!
答案 1 :(得分:0)
您可以使用:
var time = "1500";
$("body").html($("body").html().replace(time, getFormattedTime(time)));
replace()
无需始终regex
。