DrStrangeLove
DrStrangeLove

Reputation: 11557

How do i distinguish between number string and character string?

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

there're two strings. how do i make sure snumber1 contains only numbers?? What regex??

Upvotes: 0

Views: 5123

Answers (6)

CodeyKane
CodeyKane

Reputation: 11

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.

Upvotes: 1

James Sumners
James Sumners

Reputation: 14777

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" (*).

Upvotes: 1

Bakudan
Bakudan

Reputation: 19482

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

Upvotes: 2

JakeJ
JakeJ

Reputation: 1381

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

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

Source: StackOverFlow 273141

Upvotes: 2

Mihai Iorga
Mihai Iorga

Reputation: 39704

you could use parseInt

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

Upvotes: 0

Joe
Joe

Reputation: 82574

You need this function:

isNaN(string)

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

Upvotes: 1

Related Questions