Как удалить все ведущие нули в строке



Если у меня есть строка



00020300504
00000234892839
000239074


Как я могу избавиться от ведущих нулей, так что у меня будет только это



20300504
234892839
239074


обратите внимание, что число выше было сгенерировано случайным образом.

750   10  

10 ответов:

ltrim:

$str = ltrim($str, '0');
(string)((int)"00000234892839")

Не знаю, почему люди используют такие сложные методы для достижения такой простой вещи! А регулярное выражение? Ух ты!

здесь вы идете, самый простой и простой способ (как объяснено здесь:https://nabtron.com/kiss-code/ ):

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

echo $a; // will output 1

аналогично другому предложению, за исключением того, что не будет уничтожать фактический ноль:

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

вы можете добавить "+" в вашу переменную,

пример :

$numString = "0000001123000";
echo +$numString;

регулярное выражение было предложено уже, но не правильно:

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

результат:

4523423400023402340240

фон на регулярное выражение: элемент ^ сигналы начала строки и + знак сигнализирует больше или ни один из предыдущего знака. Поэтому регулярное выражение ^0+ соответствует всем нулям в начале строки.

Я не думаю, что человек-это ответ.. старый нить, но просто глядя на это. помните (инт) литье-победитель.

<?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

Im исправлено таким образом.

его очень просто. только передать строку его удалить нулевое начало строки.

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

Аджай Кумар предлагает самый простой echo +$numString; Я использую эти:

echo round($val = "0005");
echo $val = 0005;
    //both output 5
echo round($val = 00000648370000075845);
echo round($val = "00000648370000075845");
    //output 648370000075845, no need to care about the other zeroes in the number
    //like with regex or comparative functions. Works w/wo single/double quotes

на самом деле любая математическая функция будет принимать число из "строки" и относиться к нему так. Это намного проще, чем любое регулярное выражение или сравнительные функции. Я видел, что в php.net - не помню где.

предполагая, что вы хотите удалить запуск из трех или более нулей, и ваш пример-одна строка:

    $test_str ="0002030050400000234892839000239074";
    $fixed_str = preg_replace('/000+/','',$test_str);

вы можете сделать регулярное выражение шаблон соответствует тому, что вам нужно, если мои предположения выключены.

в этом помочь?

Comments

    Ничего не найдено.