powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / (JS) Вставка пробела после каждого 3го элемента.
17 сообщений из 17, страница 1 из 1
(JS) Вставка пробела после каждого 3го элемента.
    #36212918
Денис Г.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Не знаю как реализовать следующую плюху.
У меня есть поле ввода. Мне нужно, чтобы функция реагировала на onkeyup и после каждого 3го символа вставляла пробел, причем считая с конца...

Т.е. при вводе
123
значение в поле так и остается
123

При
1234
меняется на
1 234
после нажатия "4"

При
12345678
значение:
12 345 678
и т.д

Додумался пока до
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
function len() {
            var text = document.getElementById('CalcAdena');

            var len = text.value.length;
            var str = "";
            while (len >  0 ) {
                if (len %  3  ==  0 ) str = " " + text.substr(len,  1 ) + str;
                else str = text.substr(len,  1 ) + str;
                len--;
            }
            text1.value = str;
        }
но функция не работает. Подскажите плз как правильно.
...
Рейтинг: 0 / 0
(JS) Вставка пробела после каждого 3го элемента.
    #36212940
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис Г. , нормальный тестовый пример давай, что бы его можно было скопипастить и подправить.
...
Рейтинг: 0 / 0
(JS) Вставка пробела после каждого 3го элемента.
    #36212975
Денис Г.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ASP.NET:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script language="javascript" type="text/javascript">
        function noNumbers(e) {
            var keynum;
            var keychar;
            var numcheck;
            
            if (window.event) // IE
            {
                keynum = e.keyCode;
            }
            else if (e.which) // Netscape/Firefox/Opera
            {
                keynum = e.which;
            }
            keychar = String.fromCharCode(keynum);
            numcheck = /[ 0123456789 ,\b\r]/;
            return numcheck.test(keychar);
        }
        function len() {
            var text = document.getElementById('CalcAdena');
            var text1 = document.getElementById('Label1');

            var len = text.value.length;
            var str = "";
            while (len >  0 ) {
                if (len %  3  ==  0 ) str = " " + text.substr(len,  1 ) + str;
                else str = text.substr(len,  1 ) + str;
                len--;
            }
            text1.innerHTML = str;
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="CalcAdena"  Width="80px" runat="server" onkeypress="return noNumbers(event)" onkeyup="len()"/>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </div>
    </form>
</body>
</html>
.cs и прочие файлы по дефолту
...
Рейтинг: 0 / 0
(JS) Вставка пробела после каждого 3го элемента.
    #36212978
Денис Г.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хтмл
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
<html xmlns="http://www.w3.org/1999/xhtml"><head>




<title>

</title>
    <script type="text/javascript" language="javascript">
        function noNumbers(e) {
            var keynum;
            var keychar;
            var numcheck;
            
            if (window.event) // IE
            {
                keynum = e.keyCode;
            }
            else if (e.which) // Netscape/Firefox/Opera
            {
                keynum = e.which;
            }
            keychar = String.fromCharCode(keynum);
            numcheck = /[ 0123456789 ,\b\r]/;
            return numcheck.test(keychar);
        }
        function len() {
            var text = document.getElementById('CalcAdena');
            var text1 = document.getElementById('Label1');

            var len = text.value.length;
            var str = "";
            while (len >  0 ) {
                if (len %  3  ==  0 ) str = " " + text.substr(len,  1 ) + str;
                else str = text.substr(len,  1 ) + str;
                len--;
            }
            text1.innerHTML = str;
        }
    </script>
</head><body>
    <form id="form1" action="Default.aspx" method="post" name="form1">
<div>
<input type="hidden" value="/wEPDwULLTEwMjc4OTM5MzJkZHyFDDeGkBsd0NRleSV24yRKs6kI" id="__VIEWSTATE" name="__VIEWSTATE"/>
</div>

<div>

	<input type="hidden" value="/wEWAgKW/6GEAwK9j5qADLBx9CdASIDwKKmJQlVXuXgOS5tl" id="__EVENTVALIDATION" name="__EVENTVALIDATION"/>
</div>
    <div>
        <input type="text" style="width: 80px;" onkeyup="len()" onkeypress="return noNumbers(event)" id="CalcAdena" name="CalcAdena"/>
        <span id="Label1">Label</span>
    </div>
    </form>
</body></html>
...
Рейтинг: 0 / 0
(JS) Вставка пробела после каждого 3го элемента.
    #36212981
Денис Г.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сейчас пытался сделать, чтоб отображалось в другом поле, но по хорошему нужно в то же самое.
...
Рейтинг: 0 / 0
(JS) Вставка пробела после каждого 3го элемента.
    #36213079
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис Г.хтмл

Это называется "На те Боже, что мне не гоже"...

Как вариант, алгоритм такой:
- читаешь значение
- убираешь из него все пробелы
- крутишь в цикле
- формируешь новую строку у которой будут вставлены пробелы в нужных местах
...
Рейтинг: 0 / 0
(JS) Вставка пробела после каждого 3го элемента.
    #36213084
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл добавить
- записываешь сформированую строку в нужное тебе поле
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
(JS) Вставка пробела после каждого 3го элемента.
    #36213107
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это тебе как идея...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
TEST
 n
 s str="123456789"
 s newstr=""
 s dlm=""
 for i=$l(str):- 3 : 1  {
	 s newstr=$e(str,i- 2 ,i)_dlm_newstr
	 s dlm=" "
 }
 w !,newstr
 q
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
(JS) Вставка пробела после каждого 3го элемента.
    #36213321
kvad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
text?text.replace(/\s/g,'').split('').reverse().join('').match(/\d{1,3}/g).join(' ').split('').reverse().join(''):''
...
Рейтинг: 0 / 0
(JS) Вставка пробела после каждого 3го элемента.
    #36213360
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может подойдет это:
http://t-i-t-o.blogspot.com/2009/07/javascript-input-mask.html

или это:
http://www.webresourcesdepot.com/javascript-input-masks/


Код: plaintext
.mahoune. 
...
Рейтинг: 0 / 0
(JS) Вставка пробела после каждого 3го элемента.
    #36213362
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вот:
http://zendold.lojcomm.com.br/imask/

Код: plaintext
.mahoune. 
...
Рейтинг: 0 / 0
(JS) Вставка пробела после каждого 3го элемента.
    #36216531
Денис Г.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за ответы. Вот до чего доэксперементировался:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
        function len() {
            var text = document.getElementById('CalcAdena');
            
            var freeText = text.value.replace(/\s+/g, "");
            var len = freeText.length;
            var str = "";
            
            for (i =  0 ; i <=len; i++){
                if ((i- 1 ) %  3  ==  0 ) str = freeText.charAt(len - i) + " " + str;
                else str = freeText.charAt(len - i) + str;
            }
            str = str.replace(/^\s+/, '').replace(/\s+$/, '');
            
            text.value = str;
        }
...
Рейтинг: 0 / 0
(JS) Вставка пробела после каждого 3го элемента.
    #36216664
Денис Г.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот, немного модифицировал скрипт. Работа с дробными теперь в формате
12 345,6789
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
        function len() {
            var text = document.getElementById('CalcAdena');

            var freeText = text.value.replace(/\s+/g, "");
            var Mass = new Array();
            Mass = freeText.split(',');
            var len = Mass[ 0 ].length;
            var str = "";

            for (i =  0 ; i <=len; i++){
                if ((i- 1 ) %  3  ==  0 ) str = Mass[ 0 ].charAt(len - i) + " " + str;
                else str = Mass[ 0 ].charAt(len - i) + str;
            }
            str = str.replace(/^\s+/, '').replace(/\s+$/, '');
            if (Mass[ 1 ] != undefined) str = str + ',' + Mass[ 1 ];
           
            text.value = str;
        }
...
Рейтинг: 0 / 0
(JS) Вставка пробела после каждого 3го элемента.
    #36217495
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Повлияло открытие Европейского Оффа?

Код: plaintext
.mahoune. 
...
Рейтинг: 0 / 0
(JS) Вставка пробела после каждого 3го элемента.
    #36219651
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис Г.Вот, немного модифицировал скрипт. Работа с дробными теперь в формате
12 345,6789
радует, что сами написали, но в данной ситуации можно было решить проблему и поиском (гляньте решение, оно немного другое): /topic/559781
...
Рейтинг: 0 / 0
(JS) Вставка пробела после каждого 3го элемента.
    #36222214
Денис Г.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если честно - искал, но видимо не смог по-человечески запрос написать.))
В js я нуб, так что решения в почти-одну-строкчу слишком сложны для понимания
...
Рейтинг: 0 / 0
(JS) Вставка пробела после каждого 3го элемента.
    #36224001
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис Г.если честно - искал, но видимо не смог по-человечески запрос написать.))
это да, извечная проблема скл.ру. С поиском тут туговато, я и сама часто ищу методом научного тыка. Внешним поисковиком (тем же гуглом, к примеру) половчее будет.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / (JS) Вставка пробела после каждого 3го элемента.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]