0

我需要在 javascript 中编写代码以在一定间隔内接受文本框中的数字(该部分已完成,介于 0 和 16 之间),现在我需要它接受诸如 1.5、1.75、9.75、0、3.25 等数字. 所有数字都带有夸脱。所有其他号码都应该被拒绝。

接受 = 文本框背景为绿色。拒绝 = 文本框背景为红色。

 <script type="text/javascript">
       function readNumbersAndReturnsArray() { //to fix
        var tabNombre = new Array()

        
        for (var i = 0; i < 7; i++){
          var strNombre = document.getElementById('tbNbHrs' + i).value

          if (isAnEmptyString(strNombre) || !containsNumbersOnly(strNombre)) 
          {
            var strMiseEnForme = 'sNotNumber'
          }
          else if (!estDansIntervalle(strNombre,'0','16'))
          {
            var strMiseEnForme = 'sOutOfLimit'
          }
          else if(-----------) //this is the part where I should accept numbers and their quarts only (0, 0.25, 0.5, 0.75, 1, 1.25, etc.)
          {
            var strMiseEnForme = 'sNotQuart'
          }
          else
          {
            var strMiseEnForme = 'sValid'
            strNombre = Number(strNombre)
            tabNombre.push(strNombre)
          }
          document.getElementById('tbNbHrs' + i).className = strMiseEnForme
        }
      
      return tabNombre
      
     

注意:所有其他功能已经在 js 库中工作和编码。

4

1 回答 1

0

解决方案是使用模运算符。模运算符返回除法运算的余数

模数运算符在 javascript 和许多其他语言中表示为% 。

例如:

  • 5 % 2 = 1
  • 15 % 4 = 3
  • 253 % 13 = 6
  • 1.25 % 0.25 = 0

您列为“有效”的所有数字(1、1.25、3.75 等)都可以被 0.25 整除。只需使用模运算符,看看你是否得到余数 0。如果是,那么这个数字可以被 0.25 整除并且是有效的。

你的 if 语句应该是:

if(strNombre % 0.25 == 0){
    // VALID: Number is 1.75, 2, 2.25 etc.
}else{
    // INVALID
}
于 2016-03-01T21:04:54.017 回答