Javascript для ввода только положительного или отрицательного десятичного числа с 3 десятичными знаками в ASP.NET TextBox - PullRequest
0 голосов
/ 26 августа 2011

У меня есть один TextBox в моем UserControl. Здесь я хочу ввести только положительное или отрицательное десятичное число с тремя десятичными знаками. Например, как показано ниже: 128,324, -23,453, 10, 0,453, -2, 2,34, -5,34 TextBox не должен позволять вводить другие символы. Как это сделать с помощью JavaScript? Я недостаточно хорош в JavaScript.

Ответы [ 2 ]

1 голос
/ 26 августа 2011

Регулярное выражение для проверки содержимого будет выглядеть примерно так:

var re = /^[+-]?[\d,]+(\.\d{3})?$/;

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

0 голосов
/ 26 августа 2011

Если вы подтвердите изменения, все будет в порядке. Убедитесь, что вы также проверяете любые данные, которые отправляются на сервер, на сервере, поскольку любые данные могут быть отправлены независимо от того, как вы пытаетесь проверить их с помощью JS:

var input = document.getElementById('tehinput');
input.onchange = function(){
    var val = this.value, sign = '';
    if(val.lastIndexOf('-', 0) === 0){
        sign = '-';
        val = val.substring(1);
    }
    var parts = val.split('.').slice(0,2);
        if(parts[0] && parseInt(parts[0], 10).toString() !== parts[0]){
        parts[0] = parseInt(parts[0], 10);
        if(!parts[0])
            parts[0] = 0;
    }
    var result = parts[0];
    if(parts.length > 1){
        result += '.';
        if(parts[1].length > 3 || 
          parseInt(parts[1], 10).toString() !== parts[1]){
              parts[1] = parseInt(parts[1].substring(0,3), 10);
              if(!parts[1])
                  parts[1] = 0;
        }
        result += parts[1];
    }
    this.value = sign+result;
}

JSFiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...