Как проверить диапазоны номеров формы] 0,100000]

Мне нужно проверить номера, где правило проверки выглядит так (например):

]0,1000[ 

, что означает, что числа действительны только в диапазоне> 0 и & lt; = 1000

Также существует правило проверки:

[*,*]

, что означает: каждое число разрешено (не спрашивайте меня о max и min).

существующую библиотеку для проверки этого с помощью общих правил? У вас есть пример кода, который я мог бы использовать?

Спасибо Hannes

-1
задан 13 August 2018 в 14:48

2 ответа

Я не думаю, что вы найдете библиотеку для этого, потому что это слишком просто.

Лично я бы просто связал кучу функций проверки в объекте проверки и протестировал их:

var Validator = /** @class */ (function() {
  function Validator(name, tests) {
    if (tests === void 0) {
      tests = [];
    }
    this.name = name;
    this.tests = tests;
  }
  Validator.prototype.test = function(n) {
    var m = parseFloat(n.toString());
    for (var i = 0; i < this.tests.length; i++) {
      var test = this.tests[i];
      if (!test(m)) {
        return false;
      }
    }
    return true;
  };
  return Validator;
}());
//TEST
var validator = new Validator("between0And1000", [
  function(n) {
    return n >= 0;
  },
  function(n) {
    return n <= 1000;
  },
]);
console.log(validator.test(-1), validator.test(0), validator.test(1), validator.test(10), validator.test(999), validator.test(1000), validator.test(1001));

Если вы серьезно относитесь к предоставлению «шаблонов», тогда вы должны изучить регулярные выражения

0
ответ дан 15 August 2018 в 17:02

Вам не нужна lib для этого, это возможно с помощью простых if-операторов. Я еще недавно создал решение с php, но вы можете легко перенести его в javascript.

$rule = ['*', 200];
$n = 65;

if($rule[0] == '*' && $n <= $rule[1]){
  echo 'Valid';
} elseif($rule[1] == '*' && $n >= $rule[0]){
  echo 'Valid';
} elseif($rule[0] == '*' && $rule[1] == '*'){
  echo 'Valid';
} elseif($n <= $rule[1] && $n >= $rule[0]){
  echo 'Valid';
} else {
  echo 'Invalid';
}
0
ответ дан 15 August 2018 в 17:02

Другие вопросы по тегам:

Похожие вопросы: