如何区分数字字符串和字符串?

时间:2011-07-18 14:33:43

标签: javascript regex string

var snumber1 = "123456789";
var scharacter2 = "abcdefgh";

有两个字符串。我如何确保snumber1只包含数字? 什么正则表达式?

6 个答案:

答案 0 :(得分:2)

确定某些东西是否只是数字的正则表达式是这样的:

"^\d+$"  or  "^[0-9]+$"

来源:StackOverFlow 273141

答案 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。如果您使用parseIntparseFloat函数,则可以从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'); }