开发者

How do i distinguish between number string and character string?

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

there're two strings. how do i mak开发者_开发问答e sure snumber1 contains only numbers?? What regex??


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 ) );


The regex to determine if something is just numbers is this:

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

Source: StackOverFlow 273141


You need this function:

isNaN(string)

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/isNaN


Regular expressions are unnecessary:

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

if ( isNaN(+snumber1) ) {
  alert('snumber is not a number!');
}

if ( !isNaN(+scharacter2) ) {
  alert('scharacter2 is not a string!');
}

Note that I am using the + operator to do type coercion. Doing so will always result in a number or NaN. If you use the parseInt or parseFloat functions you could get '10' from parseInt('010abc', 10). This clearly doesn't pass your test for "only numbers" (*).


You should use SWITCH statements instead of 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;
}

This will return true.


you could use parseInt

if (parseInt(snumber1) == snumber1){ alert('is a number'); }
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜