Member 13998042 Ответов: 2

Тысяча разделителей выпускается в C# HTML


Я пытаюсь отделить целое число запятыми при вводе чисел в текстовое поле, и я пытаюсь показать запятые только в переднем конце .



поэтому, когда я поднимаюсь до 9999, он дает правильный вывод, например 9999, а когда я набираю 10000, он дает выход как 1,0,000


пожалуйста направьте меня

Что я уже пробовал:

this is my code 

    <pre><script type="text/javascript">

        function addCommas(nStr) {
            nStr += '';
            x = nStr.split('.');
            x1 = x[0];
            x2 = x.length > 1 ? '.' + x[1] : '';
            var rgx = /(^\d{2})|(\d{1,3})(?=\d{1,3}|$)/g;
            while (rgx.test(x1)) {
                x1 = x1.replace(rgx, '$1' + ',' + '$2');
            }
            return x1 + x2;
        }


    </script>



а это моя строка html кода

<asp:TextBox ID="txtbudamt" runat="server" CssClass="text_box" Height="22px" Width="140px" onkeyup="this.value=addCommas(this.value);"
                                                                            onkeydown="return (event.keyCode!=13);" AutoComplete="Off" TabIndex="7"></asp:TextBox>

2 Ответов

Рейтинг:
2

Patrice T

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

function addCommas(nStr) {
  result= ""
  while (nStr.length > 3) {
    tail= the last 3 digits of nStr
    result= ","+ tail + result
    nstr= the first (length-3) digits of nstr
  }
  result= nstr + result
}

Я позволяю вам искать точные функции в качестве упражнения.


Рейтинг:
1

OriginalGriff

Видеть здесь: Форматирование чисел в JavaScript - блог Тома[^]

Но в будущем, пожалуйста, помечайте свои вопросы правильно - это не так. C# проблема в том, что это javascript проблема. Неправильное использование тега означает, что люди, знающие javascript, но не C#, проигнорируют ваш вопрос, и это может задержать или помешать вам получить решение.


Member 13998042

спасибо я все изменю