Forum Moderators: open

Message Too Old, No Replies

test for integer vs string

         

sssweb

6:03 pm on Mar 15, 2006 (gmt 0)

10+ Year Member



What is the correct way to test whether a variable is any integer (can be single or multi-digit, and 0) vs. a text string (letters only)? I want to print the variable if it's an integer, and do nothing if it's a text string.

Bernard Marx

7:04 pm on Mar 15, 2006 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member




/* English alphabet from start to end; case-insensitive */
var reg_isAlpha = /^[a-z]+$/i
/* Digits from start to end */
var reg_isInteger = /^\d+$/

var testVar = "abc"
var strTestVar = testVar+"";

if( reg_isAlpha.test(strTestVar) )
alert("letters");
else if( reg_isInteger.test(strTestVar) )
alert("integer");
else
alert("testVar was neither");


First we turn testVar into a string (even if it is already).
This way, we can accept plain numbers too.

Note that no defensive actions were taken..

empty string:

testVar = "" -> "neither"

for nasty possibilities when converting unexpected data types into string:


testVar = (any of these.. )null, false, true, undefined, Number.NaN, (some object)
-> "letters"

sssweb

7:29 pm on Mar 15, 2006 (gmt 0)

10+ Year Member



Great, thanks.

prasanth jvrs

7:39 am on Mar 16, 2006 (gmt 0)

10+ Year Member



Hi,

Hope this script helps.

<script>

var empId="123psds";

if(isNaN(empId)) {
alert("came here not a number");
}else {
alert("Number");
}
</script>

Thanks
Prasanth J.V.R.S