webForumDet fria alternativet

Rensa bort alla tecken som inte är a-ö och 0-9?

PHP

6 svar · 1 022 visningar · startad av bassebhu

Medlem sedan nov. 20016 480 inlägg
Frågan#1

Tjao!

Hur gör man för att rensa en sträng från alla tecken (inkl. mellanslag) och bara behålla a-zåäö och 0-9? Samt att sedan ersätta åäö med aao...

Tack! :D

Medlem sedan dec. 20025 483 inlägg
#2
$str = preg_replace(
   array('/[^a-zåäö0-9]/i',
         '/[åä]/',
         '/[ÅÄ]/',
         '/ö/',
         '/Ö/'),
   array('',
         'a',
         'A',
         'o',
         'O'),
   $str);

echo $str;

Det är möjligt att det går att göra på något snyggare sätt :)

Medlem sedan nov. 20016 480 inlägg
#3

Taxi! :D

Medlem sedan feb. 20034 441 inlägg
#4

Tjena, jag har lite problem med ovanstående...
Jag skicka in en sträng på fyra tecken som baseras på en användare för- och efternamn. Kan t.ex. se ut såhär:

ÖnÅh

Det jag vill göra är att konvertera "ÖnÅh" till "onah", alltså ta bort specialtecken, mellanslag, byta ÅÄÖ till A och O samt göra hela strängen till gemener.

Men jag får det inte att funka. Det ovan strippar bort t.ex. "Å" helt och hållet.

Medlem sedan mars 20007 896 inlägg
#5
$username = "Önders Åkesson";
$match    = array('å', 'ä', 'ö');
$replace  = array('a','a','o');

$username = str_replace($match, $replace, strtolower($username));
Medlem sedan feb. 20034 441 inlägg
#6

Allright, hur / vad lägger jag till för att undvika att folk kör space, !?#%&/ och andra specialtecken?

Medlem sedan juli 20033 147 inlägg
#7
$username = 'Önders ÅkEsSon!?#%&/';

$match    = array('Å', 'Ä', 'Ö', 'å', 'ä', 'ö');
$replace  = array('a', 'a', 'o', 'a', 'a', 'o');

$username = str_replace($match, $replace, strtolower($username));
$username = ereg_replace('[^a-z0-9]', '', $username);

// skriver ut ondersakesson
echo $username;

Borde funka.

/r fixat.

258 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)