var snumber1 = "123456789";
var scharacter2 = "abcdefgh";
有两个字符串。我如何确保snumber1只包含数字? 什么正则表达式?
答案 0 :(得分:2)
答案 1 :(得分:2)
var snumber1 = "123456789";
//built-in function
alert ( !isNaN ( snumber1 ) );
//regexp
alert ( /^[0-9]+$/.test ( snumber1 ) );
//another regexp
alert ( /^\d+$/.test ( snumber1 ) );
//convert to Number object
alert ( parseFloat ( snumber1 ) === Number ( snumber1 ) );
答案 2 :(得分:1)
答案 3 :(得分:1)
不需要正则表达式:
var snumber1 = "123456789",
scharacter2 = "abcdefgh";
if ( isNaN(+snumber1) ) {
alert('snumber is not a number!');
}
if ( !isNaN(+scharacter2) ) {
alert('scharacter2 is not a string!');
}
请注意,我使用+
运算符来执行类型强制。这样做总会产生数字或NaN。如果您使用parseInt
或parseFloat
函数,则可以从parseInt('010abc', 10)
获得“10”。这显然没有通过“仅数字”(*)的测试。
答案 4 :(得分:1)
您应该使用SWITCH
语句而不是IF
。
var valueA=100
switch(/^[0-9]+$/.test( valueA ))
{
case false:
alert ("'" + valueA + "'" + " Is NOT a number.Try Again");
break;
case true;
alert ("you've got numbers")
break;
}
这将返回true
。
答案 5 :(得分:0)
您可以使用parseInt
if (parseInt(snumber1) == snumber1){ alert('is a number'); }