Schlagen Sie eine Lösung zum Entfernen oder Abschneiden führender Nullen von Zahlen (beliebiger Zeichenfolgen) durch Javascript oder jquery vor.
javascript
jquery
numbers
zero
Somnath Muluk
quelle
quelle
'00000.5'
) verarbeiten?Antworten:
Sie können einen regulären Ausdruck verwenden, der am Anfang der Zeichenfolge mit Nullen übereinstimmt:
s = s.replace(/^0+/, '');
quelle
Ich würde die Number () Funktion verwenden:
var str = "00001"; str = Number(str).toString();
>> "1"
Oder ich würde meine Zeichenfolge mit 1 multiplizieren
var str = "00000000002346301625363"; str = (str * 1).toString();
>> "2346301625363"
quelle
Vielleicht etwas spät, aber ich möchte meine 2 Cent hinzufügen.
Wenn Ihre Zeichenfolge IMMER eine Zahl mit möglichen führenden Nullen darstellt, können Sie die Zeichenfolge einfach mit dem Operator '+' in eine Zahl umwandeln.
z.B
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)
Wenn Ihre Zeichenfolge keine Zahl darstellt und Sie nur die Nullen entfernen müssen, verwenden Sie die anderen Lösungen. Wenn Sie sie jedoch nur als Zahl benötigen, ist dies der kürzeste Weg.
und zu Ihrer Information können Sie das Gegenteil tun, indem Sie Zahlen zwingen, als Zeichenfolgen zu fungieren, wenn Sie ihnen eine leere Zeichenfolge verketten, wie z.
x = 5; alert(typeof x); //number x = x+""; alert(typeof x); //string
hoffe es hilft jemandem
quelle
Da Sie "jede Zeichenfolge" gesagt haben, gehe ich davon aus, dass dies auch eine Zeichenfolge ist, mit der Sie umgehen möchten.
"00012 34 0000432 0035"
Regex ist also der richtige Weg:
var trimmed = s.replace(/\b0+/g, "");
Dies verhindert den Verlust eines "000000" -Werts.
var trimmed = s.replace(/\b(0(?!\b))+/g, "")
Hier sehen Sie ein Arbeitsbeispiel
quelle
Ich habe diese Lösung zum Abschneiden führender Nullen (Zahlen oder beliebiger Zeichenfolgen) in Javascript erhalten:
<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>
quelle
false
. Die Verwendung9999
als zweiter Parameter fürsubstr
ist nicht erforderlich. Einfach benutzenwhile (s.substr(0,1) == '0') s = s.substr(1);
. Außerdem sieht dieses Code-Snippet sehr alt aus, daslanguage
Attribut desscript
Tags ist seit langem veraltet und die Verwendung von Kommentaren inscript
Tags ist nur für Browser erforderlich, die dasscript
Tag überhaupt nicht verstehen , z. B. Internet Explorer 1.0.parseInt(value) or parseFloat(value)
Das wird gut funktionieren.
quelle
Versuche dies,
function ltrim(str, chars) { chars = chars || "\\s"; return str.replace(new RegExp("^[" + chars + "]+", "g"), ""); } var str =ltrim("01545878","0");
Mehr hier
quelle
Versuchen Sie einfach, wie folgt mit eins zu multiplizieren:
quelle
Sie sollten den Parameter "radix" der Funktion "parseInt" verwenden: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt?redirectlocale=de-US&redirectslug=JavaScript%2FReference % 2FGlobal_Objects% 2FparseInt
parseInt ('015', 10) => 15
Wenn Sie es nicht verwenden, wird es möglicherweise von einer Javascript-Engine als oktales parseInt ('015') => 0 verwendet
quelle
Wenn die Nummer int verwendet wird
"" + parseInt(str)
Wenn die Nummer float ist, verwenden Sie
"" + parseFloat(str)
quelle
Ein anderer Weg ohne Regex:
function trimLeadingZerosSubstr(str) { var xLastChr = str.length - 1, xChrIdx = 0; while (str[xChrIdx] === "0" && xChrIdx < xLastChr) { xChrIdx++; } return xChrIdx > 0 ? str.substr(xChrIdx) : str; }
Mit einer kurzen Zeichenfolge ist es schneller als Regex ( jsperf )
quelle
const input = '0093'; const match = input.match(/^(0+)(\d+)$/); const result = match && match[2] || input;
quelle