Получение целочисленного значения от текстового поля, как проверить, является ли это NaN или пустой указатель и т.д.?

Вы можете напрямую передать ключ (NavigationViewExpandedPaneBackGround) в AcrylicBrush. Так что это изменит ваш навигационный вид фона.

  
      
            
                
                       
                
                
                    
                
            
        

enter image description here Надеюсь, это решит вашу проблему.

7
задан T Zengerink 28 January 2013 в 12:40
поделиться

4 ответа

Хм, здесь что-то подозрительно.

В каком браузере пустое текстовое поле возвращает NaN? Я никогда не видел, чтобы это произошло, и я не могу воспроизвести его.

Значение текстового поля - фактически строка. Пустое текстовое поле возвращает пустую строку!

Да, и чтобы проверить, является ли что-то NaN, вы должны использовать:

if (isNaN(tb.value))
{
   ...
}

Примечание: isNaN () -функция возвращает true ] для всего, что не может быть проанализировано как число, кроме пустых строк. Это означает, что это хорошая проверка для числового ввода (намного проще, чем регулярные выражения):

if (tb.value != "" && !isNaN(tb.value))
{
   // It's a number
   numValue = parseFloat(tb.value);
}
17
ответ дан 6 December 2019 в 09:22
поделиться

Вы также можете сделать это следующим образом:

var number = +input.value;
if (input.value === "" || number != number)
{
    // not a number
}

NaN равняется ничему, даже самому себе.

если вам не нравится использовать + для преобразования из String в Number, используйте обычный parseInt, но не забывайте всегда указывать основание

var number = parseInt(input.value, 10)

, иначе «08» становится 0, потому что Javascript считает, что это восьмеричное число.

2
ответ дан 6 December 2019 в 09:22
поделиться

Предполагая, что у вас есть ссылка на текстовое поле ввода:

function getInteger(input) {
  if(!input || !input.value) return "";

  var val = parseInt(input.value, 10);

  if(isNaN(val)) return "";
  else return val;
}
1
ответ дан 6 December 2019 в 09:22
поделиться

Одна вещь, которую вы могли бы сделать, это проверить регулярное выражение значения текстового поля и убедиться, что оно соответствует формату принятого числа, а затем, если оно соответствует формату, выполнить ваш процесс, в противном случае вернуть пустая строка.

Редактировать : Это пример некоторого кода, который у меня есть (возможно, это не лучшее регулярное выражение):

var anum=/(^\d+$)/;

if (!anum.test(document.getElementById("<%=txtConceptOrderValue.ClientID %>").value))
{
    alert("Order Value must be a valid integer");
    document.getElementById("<%=txtConceptOrderValue.ClientID %>").focus();
    return false;
}

Редактировать 2 : Я должен также отметить, что я Я использую ASP.NET, поэтому у меня есть немного причудливый способ доступа к текстовому полю. В вашем обычном случае JavaScript это может быть не так загромождено.

0
ответ дан 6 December 2019 в 09:22
поделиться
Другие вопросы по тегам:

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