将字符串转换为秒数
Converting string to number of seconds
我正在尝试创建一个简单的程序,该程序将用户提供的小时数转换为秒数,并要求用户重新输入小时数,如果他提供一个字符串。当我输入非正数时,它工作正常,但如果输入字符串值,则不会显示任何消息。这是代码:
function convertToSeconds () {
var d = prompt("Enter any hour between 0-24","4");
if ( d<0 ){
alert("Please enter a number greater than zero");
convertToSeconds();
}
else if( typeof d == String ) {
/*Problem seems to be here*/
alert(d + " is not a valid number");
convertToSeconds();
}
else {
var seconds = 3600*parseFloat(d);
document.write(seconds);
}
};
convertToSeconds();
prompt 方法仅返回字符串。您需要确定字符串是否可以转换为 0 到 24 之间的正整数,因此:
var d = prompt('Enter any hour between 0-24');
if ( /^(1?[0-9]|2[0-4])$/.test(d) ) {
alert('looks good');
} else {
alert('don''t like that');
}
或者你可以做这样的事情:
var d = Number(prompt('Enter any hour between 0-24'));
if (d == parseInt(d) && d > -1 && d < 25 {
// ok
}
// not ok
}
只是你的代码有问题。 typeof "any string" = "string"
不是String
,默认情况下,JS也将字符串格式的数字强制为数字,因此我建议在数字之前检查字符串。
function convertToSeconds () {
var d = prompt("Enter any hour between 0-24","4");
if ( d<0 ){
alert("Please enter a number greater than zero");
convertToSeconds();
}
else if( isNaN(d) ) {
/*Problem seems to be here*/
alert(d + "is not a valid number");
convertToSeconds();
}
else {
var seconds = 3600*parseFloat(d);
document.write(seconds);
}
};
convertToSeconds();
相关文章:
- 如何使用JQuery在Javascript中转换字符串中的HTML元素
- 将JSON插入MongoDB中,自动转换字符串中的日期
- 以点表示法转换字符串以获取对象引用
- 在 JavaScript 中转换字符串 11/28/2014 11:00 AM 到现在
- 为什么在主干的字符串数组中转换字符串数组
- 如何简单地转换字符串
- AngularJS如何转换字符串“;yyyyMMdd”;迄今为止
- 如何防止htmlspecialchar(PHP)转换字符串中的整数
- 刷新Aurelia中的i18n转换字符串插值
- 发布时禁用转换字符串
- 转换字符串货币
- 在javascript ajax调用中转换字符串到数组
- 转换字符串包含时间到24小时的时间,我可以做数学与- jQuery
- IE javascript引擎在转换字符串到日期时呈现NaN
- 如何转换字符串“a,b,c,d……”成a.b (c, d . .);来执行
- 如何在javascript中转换字符串到日期格式
- 如何在嵌套数组中转换字符串数组
- 在javascript中转换字符串日期
- 转换字符串在印度格式的javascript
- Javascript转换字符串到数组的对象