Дополнить функцию addDots
Всем здрасти,
нарыл в инете функцию которая мне после каждого знака проставляет точку. function addDots(nStr) { nStr += ''; x = nStr.split('.'); x1 = x[0]; x2 = x.length > 1 ? '.' + x[1] : ''; var rgx = /(\w+)(\w{1})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + '.' + '$2'); } return x1 + x2; } А вот теперь сама суть вопроса: прошу не написать за меня, а показать в какую сторону смотреть чтобы расширить её "счётчиком", по которуму выдваемый результат дополнялся до 4 знаков нулями и начинался всегда 0х Например у меня сейчас 2.0.0 - а надо чтобы выдавало 0х 0.2.0.0 или 3.b.0 доджно стать 0х 0.3.b.0 Заранее благодарю за будущие подсказки, хочется самому понять как это работает и научиться хоть чуток программировать на JS |
SaM1001,
Цитата:
Цитата:
|
Цитата:
как то вот так наверное: if (x.lenght != 4){ return (тут ещё не знаю что дописать потому, что не понимаю) } |
SaM1001,
По дополнению нулями с точкой var x3 = x1 + x2; while(x3.length < 7) { x3 = "0." + x3; } Думайте дальше |
SaM1001,
можно не проверять длину -- прибавить к строке из нулей вашу строку, убрать точки, взять нужный кусок с конца, разбить на 4 элемента и соединить точками вернуть "0x " + nStr -- и того 2 строчки вся функция |
Цитата:
Цитата:
Но буду пробовать!!! Спасибо за подсказки!!! |
Dilettante_Pro - у меня как-то так получилось!!! Спасибо за подсказку!
Ребят, сильно не ругайтесь только, у вас решение наверное совсем по другому будет выглядеть, но я сделал вот так и теперь работает: function addDots(nStr) { nStr += ''; x = nStr.split('.'); x1 = x[0]; x2 = x.length > 1 ? '.' + x[1] : ''; var rgx = /(\w+)(\w{1})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + '.' + '$2'); } var x3 = x1 + x2; while (x3.length < 7) { x3 = "0." + x3; } return "0x"+ x3; } Спасибо огромное за помошь! |
SaM1001,
function addDots(nStr) { nStr = ('0000'+ nStr).replace(/\./g,''); return '0х ' + nStr.split('').slice(-4).join('.'); } alert(addDots('2.0.0')); |
Рони, спасибо ещё раз, плюс тебе в карму! Но тут другой вопрос появился: А если я хочу убрать разделяющие точки, простым удалением из этой строчки
x1 = x1.replace(rgx, '$1' + '.' + '$2'); не получается. Что я делаю не так? Мне понять хочется этот скрипт UPD: Уже всё сделал, всем спасибо огромное за вашу помощь!!! |
Цитата:
x1 = x1.replace(rgx, '$1$2'); равносильна строке x1 = x1 |
Часовой пояс GMT +3, время: 15:49. |