javascript/jquery로 선행 0 제거/잘림
javascript,jquery에 의해 숫자(아무 문자열)에서 선행 0을 제거하거나 잘라내기 위한 해결책을 제안합니다.
문자열 맨 앞에 0과 일치하는 정규식을 사용할 수 있습니다.
s = s.replace(/^0+/, '');
Number() 함수를 사용합니다.
var str = "00001";
str = Number(str).toString();
>> "1"
아니면 내 끈에 1을 곱할 것입니다.
var str = "00000000002346301625363";
str = (str * 1).toString();
>> "2346301625363"
조금 늦을지도 모르지만, 2센트를 추가하고 싶습니다.
문자열이 항상 숫자와 가능한 선두 0을 나타내는 경우 '+' 연산자를 사용하여 문자열을 숫자에 캐스팅할 수 있습니다.
예.
x= "00005";
alert(typeof x); //"string"
alert(x);// "00005"
x = +x ; //or x= +"00005"; //do NOT confuse with x+=x, which will only concatenate the value
alert(typeof x); //number , voila!
alert(x); // 5 (as number)
문자열이 숫자를 나타내지 않고 0을 제거하기만 하면 되는 경우 다른 솔루션을 사용하지만 숫자로만 필요한 경우 이 방법이 가장 짧은 방법입니다.
FYI와 반대로, 다음과 같이 빈 문자열을 연결하면 숫자가 문자열 역할을 하도록 강제할 수 있습니다.
x = 5;
alert(typeof x); //number
x = x+"";
alert(typeof x); //string
누군가에게 도움이 되기를 바랍니다.
당신이 "아무 문자열"이라고 했으니, 당신도 처리하고 싶은 문자열일 거라고 생각합니다.
"00012 34 0000432 0035"
따라서 regex가 선택할 수 있는 방법입니다.
var trimmed = s.replace(/\b0+/g, "");
그리고 이를 통해 "000000" 값의 손실을 방지할 수 있습니다.
var trimmed = s.replace(/\b(0(?!\b))+/g, "")
parseInt(value) or parseFloat(value)
이거 잘 될 겁니다.
자바스크립트에서 선행 0(숫자 또는 문자열)을 잘라내기 위한 솔루션을 받았습니다.
<script language="JavaScript" type="text/javascript">
<!--
function trimNumber(s) {
while (s.substr(0,1) == '0' && s.length>1) { s = s.substr(1,9999); }
return s;
}
var s1 = '00123';
var s2 = '000assa';
var s3 = 'assa34300';
var s4 = 'ssa';
var s5 = '121212000';
alert(s1 + '=' + trimNumber(s1));
alert(s2 + '=' + trimNumber(s2));
alert(s3 + '=' + trimNumber(s3));
alert(s4 + '=' + trimNumber(s4));
alert(s5 + '=' + trimNumber(s5));
// end hiding contents -->
</script>
다음과 같이 1을 곱해 보십시오.
"00123" * 1; // 번호 불러오기
"00123" * 1 + ""; // 문자열로 가져오기
1.parseInt()를 사용하는 것이 가장 명확합니다.
parseInt(number, 10)
2.다른 방법은 + 단항 연산자를 사용하는 것입니다.
+number
3.다음과 같이 정규 표현 경로를 선택할 수도 있습니다.
number.replace(/^0+/, '')
이거 먹어봐요.
function ltrim(str, chars) {
chars = chars || "\\s";
return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
var str =ltrim("01545878","0");
parseInt 함수의 "radix" 매개 변수를 사용해야 합니다. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt?redirectlocale=en-US&redirectslug=JavaScript%2FReference%2FGlobal_Objects%2FparseInt
parseInt('015', 10) => 15
만약 당신이 그것을 사용하지 않는다면, 어떤 자바스크립트 엔진은 그것을 팔각 파싱으로 사용할지도 모릅니다.Int('015') => 0
번호가 사용 중인 경우
"" + parseInt(str)
숫자가 float일 경우 사용
"" + parseFloat(str)
const 번호 = '0000007457841'; console.log (+번호) //7457841;
OR number.replace(/^0+/, '')
Guffa의 regex 솔루션이지만 적어도 하나의 캐릭터를 남깁니다.
"123".replace(/^0*(.+)/, '$1'); // 123
"012".replace(/^0*(.+)/, '$1'); // 12
"000".replace(/^0*(.+)/, '$1'); // 0
"Math.abs" 사용
예: Math.abs(003) = 3;
console.log(Math.abs(003))
문자열의 모든 자리 수열에 대해 선행 0을 모두 제거하고 자리 수 값이 0이면 0을 반환하고 싶었습니다.
그리고 결국 그렇게 됐습니다.
str = str.replace(/(0{1,}\d+)/, "removeLeadingZeros('$1')")
function removeLeadingZeros(string) {
if (string.length == 1) return string
if (string == 0) return 0
string = string.replace(/^0{1,}/, '');
return string
}
정규식이 없는 또 다른 방법:
function trimLeadingZerosSubstr(str) {
var xLastChr = str.length - 1, xChrIdx = 0;
while (str[xChrIdx] === "0" && xChrIdx < xLastChr) {
xChrIdx++;
}
return xChrIdx > 0 ? str.substr(xChrIdx) : str;
}
문자열이 짧으면 regex(jsperf)보다 빠릅니다.
const input = '0093';
const match = input.match(/^(0+)(\d+)$/);
const result = match && match[2] || input;
언급URL : https://stackoverflow.com/questions/8276451/remove-truncate-leading-zeros-by-javascript-jquery
'source' 카테고리의 다른 글
ADODB 및 Oracle로 "xas(...)"를 수행할 수 없는 이유는 무엇입니까? (0) | 2023.10.24 |
---|---|
Angular JS에서 모든 $http 요청이 완료될 때까지 기다립니다. (0) | 2023.10.24 |
텍스트 영역에서 값 가져오기 (0) | 2023.10.24 |
xlsxwriter로 쓸 때 통화 기호 설정 (0) | 2023.10.24 |
Linux에서 가장 빠른 화면 캡처 방법 (0) | 2023.10.24 |