今天突然遇到了这个功能,百度一下找到了很多,不外乎两种方式:正则表达式和逐个字符判断,都挺麻烦。正则表达式试了半天都没成功。自己琢磨了一个比较简单的方法:取整后判断是否和原值相等!
javascript的取整函数是:parseInt
if(parseInt(value)==value)
{
//整数!
}
正则方式
1) "^\\d+$" //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$" //正整数
"^((-\\d+)|(0+))$" //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$" //负整数
"^-?\\d+$" //整数
"^\\d+(\\.\\d+)?$" //非负浮点数(正浮点数 + 0)
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数
"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$" //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数
"^(-?\\d+)(\\.\\d+)?$" //浮点数
2) var r = /^\+?[1-9][0-9]*$/; //正整数
r.test(str);