Дополнить функцию 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, время: 01:19. |