javascript如何判断输入的数字为一个数的倍数?

JavaScript023

javascript如何判断输入的数字为一个数的倍数?,第1张

直接拿去就能用,,我的代码和2楼基本是一样的,,楼主自己看着来吧。

① 最好把<SCRIPT></SCRIPT>放在<HEAD>段里。

<script language="javascript">

function CheckNum()

{

var bookcount = form1.bookcount.value

var guige = form1.guige.value

//对输入的数据进行是否在整数的判断

var regu="^[0-9]+$"

var re = new RegExp(regu)

if(bookcount.search(re)==-1)

{

alert("这里只能输入正整数")

return false

}

//是否是guige的倍数,是的话就提交,不是的话就不提交

else if(bookcount % guige !=0)

{

alert("请输入"+guige+"的倍数")

return false

}

else return true

}

</script>

② <FORM>段需要添加onsubmit事件处理指向:

<form action="" method="get" name="form1" onsubmit="CheckNum()">

<input name="guige" id="guige" value="12" type="hidden" >

<input name="bookcount" type="text" id="bookcount" size="3" maxlength="9" >

<input type="submit" name="button" id="button" value="订购" >

</form>

第一种方法,编写两个方法getIntegerTimes(),isPositiveIntegerTimes()判断两个数(包含小数),先获取倍数,再判断倍数是否为正整数,好处就是两个方法都可以作为通用方法调用.实现功能多.

//获取两个数的倍数,返回倍数

function getIntegerTimes(arg1,arg2){

if(arg1<arg2){

var flag=arg1

arg1=arg2

arg2=arg1

}

var t1=0,t2=0,r1,r2

try{t1=arg1.toString().split(".")[1].length}catch(e){}

try{t2=arg2.toString().split(".")[1].length}catch(e){}

with(Math){

r1=Number(arg1.toString().replace(".",""))

r2=Number(arg2.toString().replace(".",""))

return (r1/r2)*pow(10,t2-t1)

}

//判断是否为正整数,返回true或false

function isPositiveIntegerTimes(arg) {

var num = arg.toString()

if (!(/(^[1-9]\d*$)/.test(num))) {

return false

}else {

return true

}

}

第二种方法,就是单一方法isPositiveIntegerTimes(),判断两个数(包含小数)是否整除

//判断两个数的是否为整数倍,返回true或者false

function isPositiveIntegerTimes(arg1,arg2){

if(arg1<arg2){

var flag=arg1

arg1=arg2

arg2=arg1

}

var t1=0,t2=0,r1,r2

try{t1=arg1.toString().split(".")[1].length}catch(e){}

try{t2=arg2.toString().split(".")[1].length}catch(e){}

with(Math){

r1=Number(arg1.toString().replace(".",""))

r2=Number(arg2.toString().replace(".",""))

var times= (r1/r2)*pow(10,t2-t1)

if (!(/(^[1-9]\d*$)/.test(times.toString()))) {

return false

}else {

return true

}

}