jQuery를 사용하여 숫자 앞에 추가 0을 추가 하시겠습니까?
다음과 같은 형식으로 업로드 된 파일이 있습니다.
미스터 1
미스터 2
씨 100
씨 200
씨 300
기타.
내가해야 할 일은 MR 10 이전에 00을 추가하고 MR10-99 이전에 0을 하나 더 추가하는 것입니다.
따라서 파일은 형식이 지정됩니다.
MR 001
씨 010
MR 076
기타.
어떤 도움이라도 좋을 것입니다!
이러한 값이 일부 문자열에 저장되어 있다고 가정하면 다음을 시도하십시오.
function pad (str, max) {
str = str.toString();
return str.length < max ? pad("0" + str, max) : str;
}
pad("3", 3); // => "003"
pad("123", 3); // => "123"
pad("1234", 3); // => "1234"
var test = "MR 2";
var parts = test.split(" ");
parts[1] = pad(parts[1], 3);
parts.join(" "); // => "MR 002"
나는 관련이 있다고 생각하는 잠재적 솔루션이 있으며 여기에 게시했습니다.
https://www.facebook.com/antimatterstudios/posts/10150752380719364
기본적으로 최소 2 개 또는 3 개의 길이를 원합니다.이 코드에 0을 몇 개 넣을지 조정할 수 있습니다.
var d = new Date();
var h = ("0"+d.getHours()).slice(-2);
var m = ("0"+d.getMinutes()).slice(-2);
var s = ("0"+d.getSeconds()).slice(-2);
나는 항상 하나의 정수를 최소값 (1 시간, 2 시간) 등으로 얻는다는 것을 알고 있었지만, 빈 문자열 외에는 아무것도 얻을 수 없다면 "000"+ d.getHours ( ) 최소값을 얻으십시오.
그러면 3 개의 숫자를 원하십니까? 내 코드에서 -2 대신 -3을 사용합니다. 저는 24 시간 시계를 아주 쉽게 만들고 싶었 기 때문에 이것을 작성하고 있습니다.
비슷한 질문에 대한 답변 에서 단순함으로 좋아하는 솔루션이 있습니다 .
var n = 123
String('00000' + n).slice(-5); // returns 00123
('00000' + n).slice(-5); // returns 00123
최신 정보
@RWC가 제안했듯이 다음과 같은 일반적인 함수로 멋지게 래핑 할 수 있습니다.
function leftPad(value, length) {
return ('0'.repeat(length) + value).slice(-length);
}
leftPad(123, 5); // returns 00123
슬라이스가 마음에 들지 않는 사람들을 위해 :
function leftPad(value, length) {
value = String(value);
length = length - value.length;
return ('0'.repeat(length) + value)
}
그러나 성능이 중요하다면 제안 된 솔루션 중 하나를 선택하기 전에 연결된 답변을 읽어 보는 것이 좋습니다.
function addLeadingZeros (n, length)
{
var str = (n > 0 ? n : -n) + "";
var zeros = "";
for (var i = length - str.length; i > 0; i--)
zeros += "0";
zeros += str;
return n >= 0 ? zeros : "-" + zeros;
}
//addLeadingZeros (1, 3) = "001"
//addLeadingZeros (12, 3) = "012"
//addLeadingZeros (123, 3) = "123"
이것은 일반적으로 코드에서 숫자 또는 문자열 앞에 0을 추가하는 데 사용하는 함수입니다.
입력은 문자열 또는 숫자 (str) 및 원하는 출력 길이 (len)입니다.
var PrependZeros = function (str, len) {
if(typeof str === 'number' || Number(str)){
str = str.toString();
return (len - str.length > 0) ? new Array(len + 1 - str.length).join('0') + str: str;
}
else{
for(var i = 0,spl = str.split(' '); i < spl.length; spl[i] = (Number(spl[i])&& spl[i].length < len)?PrependZeros(spl[i],len):spl[i],str = (i == spl.length -1)?spl.join(' '):str,i++);
return str;
}
};
예 :
PrependZeros('MR 3',3); // MR 003
PrependZeros('MR 23',3); // MR 023
PrependZeros('MR 123',3); // MR 123
PrependZeros('foo bar 23',3); // foo bar 023
공백으로 분할하는 경우 다음과 같은 간단한 함수를 사용하여 선행 0을 추가 할 수 있습니다.
function addZeros(n) {
return (n < 10)? '00' + n : (n < 100)? '0' + n : '' + n;
}
So you can test the length of the string and if it's less than 6, split on the space, add zeros to the number, then join it back together.
Or as a regular expression:
function addZeros(s) {
return s.replace(/ (\d$)/,' 00$1').replace(/ (\d\d)$/,' 0$1');
}
I'm sure someone can do it with one replace, not two.
Edit - examples
alert(addZeros('MR 3')); // MR 003
alert(addZeros('MR 23')); // MR 023
alert(addZeros('MR 123')); // MR 123
alert(addZeros('foo bar 23')); // foo bar 023
It will put one or two zeros infront of a number at the end of a string with a space in front of it. It doesn't care what bit before the space is.
Just for a laugh do it the long nasty way....:
(NOTE: ive not used this, and i would not advise using this.!)
function pad(str, new_length) {
('00000000000000000000000000000000000000000000000000' + str).
substr((50 + str.toString().length) - new_length, new_length)
}
I needed something like this myself the other day, Pud instead of always a 0, I wanted to be able to tell it what I wanted padded ing the front. Here's what I came up with for code:
function lpad(n, e, d) {
var o = ''; if(typeof(d) === 'undefined'){ d='0'; } if(typeof(e) === 'undefined'){ e=2; }
if(n.length < e){ for(var r=0; r < e - n.length; r++){ o += d; } o += n; } else { o=n; }
return o; }
Where n is what you want padded, e is the power you want it padded to (number of characters long it should be), and d is what you want it to be padded with. Seems to work well for what I needed it for, but it would fail if "d" was more than one character long is some cases.
var str = "43215";
console.log("Before : \n string :"+str+"\n Length :"+str.length);
var max = 9;
while(str.length < max ){
str = "0" + str;
}
console.log("After : \n string :"+str+"\n Length :"+str.length);
It worked for me ! To increase the zeroes, update the 'max' variable
Working Fiddle URL : Adding extra zeros in front of a number using jQuery?:
str could be a number or a string.
formatting("hi",3);
function formatting(str,len)
{
return ("000000"+str).slice(-len);
}
Add more zeros if needs large digits
In simple terms we can written as follows,
for(var i=1;i<=31;i++)
i=(i<10) ? '0'+i : i;
//Because most of the time we need this for day, month or amount matters.
Know this is an old post, but here's another short, effective way:
edit: dur. if num isn't string, you'd add:
len -= String(num).length;
else, it's all good
function addLeadingZeros(sNum, len) {
len -= sNum.length;
while (len--) sNum = '0' + sNum;
return sNum;
}
참고URL : https://stackoverflow.com/questions/6466135/adding-extra-zeros-in-front-of-a-number-using-jquery
'developer tip' 카테고리의 다른 글
여러 줄 문자열을 쉼표로 구분 된 단일 문자열로 바꾸기 (0) | 2020.10.13 |
---|---|
WebSockets 및 Apache 프록시 : mod_proxy_wstunnel을 구성하는 방법? (0) | 2020.10.13 |
Xcode 10-더 이상 사용할 수없는 이미지 리터럴 (0) | 2020.10.13 |
PHP에서 문자열의 처음 100자를 어떻게 가져 오나요? (0) | 2020.10.13 |
CRON 작업을 사용하여 URL을 방문 하시겠습니까? (0) | 2020.10.13 |