webentwicklung-frage-antwort-db.com.de

So entfernen Sie alle führenden Nullen in einer Zeichenfolge

Wenn ich eine Schnur habe

00020300504
00000234892839
000239074

wie kann ich die führenden Nullen loswerden, so dass ich nur dieses habe

20300504
234892839
239074

beachten Sie, dass die obige Zahl zufällig generiert wurde.

138
Gerald

ltrim :

$str = ltrim($str, '0');
409
lonesomeday

Ich weiß nicht, warum die Menschen so komplexe Methoden einsetzen, um eine so einfache Sache zu erreichen! Und Regex? Beeindruckend!

Hier gehts, der einfachste und einfachste Weg (wie hier erklärt: https://nabtron.com/kiss-code/ ):

$a = '000000000000001';
$a += 0;

echo $a; // will output 1
10
Nabeel Khan
(string)((int)"00000234892839")
10
Svisstack

Ähnlich wie bei einem anderen Vorschlag, außer dass der tatsächliche Nullpunkt nicht gelöscht wird:

if (ltrim($str, '0') != '') {
    $str = ltrim($str, '0');
} else {
    $str = '0';
}
8
Mike Weir

sie können "+" in Ihre Variable einfügen,

beispiel:

$numString = "0000001123000";
echo +$numString;
5
Anthony Kal

Regex wurde bereits vorgeschlagen, aber nicht korrekt:

<?php
    $number = '00000004523423400023402340240';
    $withoutLeadingZeroes = preg_replace('/^0+/', $number)
    echo $withoutLeadingZeroes;
?>

ausgabe ist dann:

4523423400023402340240

Hintergrund zu Regex: Der ^ signalisiert den Beginn des Strings und das +-Zeichen signalisiert mehr oder kein Vorzeichen. Daher stimmt der Regex ^0+ mit allen Nullen am Anfang einer Zeichenfolge überein.

3
Fuujin

Ich glaube nicht, dass preg_replace die Antwort ist ... __ alter Thread, aber ich suche einfach heute nach diesem. ltrim und (int) casting ist der Gewinner.

<?php
 $numString = "0000001123000";
 $actualInt = "1123000";

 $fixed_str1 = preg_replace('/000+/','',$numString);
 $fixed_str2 = ltrim($numString, '0');
 $fixed_str3 = (int)$numString;

 echo $numString . " Original";
 echo "<br>"; 
 echo $fixed_str1 . " Fix1";
 echo "<br>"; 
 echo $fixed_str2 . " Fix2";
 echo "<br>";
 echo $fixed_str3 . " Fix3";
 echo "<br>";
 echo $actualInt . " Actual integer in string";

 //output

 0000001123000 Origina
 1123 Fix1
 1123000 Fix2
 1123000 Fix3
 1123000 Actual integer in tring
2
Elcast

Ich bin auf diese Weise behoben.

es ist sehr einfach. Übergeben Sie nur einen String und entfernen Sie ihn von Null.

function removeZeroString($str='')
{
    while(trim(substr($str,0,1)) === '0')
    {
        $str = ltrim($str,'0');
    }
    return $str;
}
0
Ali Sufyan