Необходимо одобрить range()
более чем xrange()
только при необходимости в фактическом списке. Например, когда Вы хотите изменить список, возвращенный range()
, или когда Вы хотите нарезать его. Для повторения или даже просто нормальной индексации, xrange()
будет хорошо работать (и обычно намного более эффективно). Существует точка, где range()
немного быстрее, чем xrange()
для очень маленьких списков, но в зависимости от Ваших аппаратных средств и различных других деталей, безызбыточность может быть в результате длины 1 или 2; не что-то для волнения о. Предпочтите xrange()
.
Я бы предложил использовать регулярные выражения:
var intRegex = /^\d+$/;
var floatRegex = /^((\d+(\.\d *)?)|((\d*\.)?\d+))$/;
var str = $('#myTextBox').val();
if(intRegex.test(str) || floatRegex.test(str)) {
alert('I am a number');
...
}
Или с одним регулярным выражением в соответствии с предложением @Platinum Azure:
var numberRegex = /^[+-]?\d+(\.\d+)?([eE][+-]?\d+)?$/;
var str = $('#myTextBox').val();
if(numberRegex.test(str)) {
alert('I am a number');
...
}
jQuery не отвечает за проверку значений. Для этого можно использовать чистый JavaScript. На ум приходят два способа:
/^\d+$/.match(value)
Number(value) == value
Забудьте о регулярных выражениях. В JavaScript есть встроенная функция для этого: isNaN ()
:
isNaN(123) // false
isNaN(-1.23) // false
isNaN(5-2) // false
isNaN(0) // false
isNaN("100") // false
isNaN("Hello") // true
isNaN("2005/12/12") // true
Просто назовите это так:
if (isNaN( $("#whatever").val() )) {
// It isn't a number
} else {
// It is a number
}
jQuery - это набор функций JavaScript, верно? Таким образом, вы можете использовать поддержку регулярных выражений JavaScript для проверки строки. Вы также можете поместить это в обратный вызов jQuery, если хотите, поскольку они просто принимают тела анонимно объявленных функций, а функции по-прежнему являются JavaScript.
Ссылка: http://www.regular-expressions.info/ javascript.html