Citat:
Ursprungligen postat av
Kausti
För att hitta det första tecknet i en sträng så använder du dig av ^. Så för att hitta den första nollan i strängen blir ditt regex då ^0.
För att köra det i PHP och byta ut mot +46 så blir det väl såhär:
[..]
Citat:
Ursprungligen postat av
Enterprise
Granted, ditt exempel är kortare och snyggare.
Nostalgiskt. Precis en sådan här uppgift var det första jag gjorde i mitt första jobb som programmerare.
I mitt fall handlade det om att via en nätspindel samla in telefonnummer.
Ett tips är att inte lita på input, särskilt när standarden kan se så olika ut.
Kod:
// Hur nummer brukar se ut i det vilda när du inte har kontroll över input
$strings = [
'0701234567',
'701234567',
'46_70_1234567',
'+46701234567',
'701234567',
'070 123 45 67',
'01234567',
' 0701234567',
'0701234567 ',
'<0701234567>',
'Asthon Kutcher',
];
$pattern = '/^0/';
$replacement = '+46';
foreach($strings as $str){
echo preg_replace($pattern, $replacement, $str) . PHP_EOL; // icke sa nicke, rätt kaoz.
}