WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   ta bort allt förutom a-ö tecknen o mellanslag? (https://www.wn.se/forum/showthread.php?t=16139)

zilveer 2006-09-10 00:50

hejsan,

jag skulle vilja ta bort alla tecken förutom "a-ö tecknena och mellanslagstecknet" i en sträng. hur gör jag detta?

dock vill jag ersätta \n \f etc.. - tecknena med mellanslag.

/tack för vägledning

grazzy 2006-09-10 01:26

Vilket språk kan vara en ide att ange.

najk 2006-09-10 09:46

med regular expressions kan du behålla de tecknen du vill och skrota resten.

zilveer 2006-09-11 20:29

jag använder mig utav PHP.

jag var o kika på php.net o hittade följande:
Kod:

// split the phrase by any number of commas or space characters,
// which include " ", \r, \t, \n and \f
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");

dock skulle jag även efter att ha kört denna preg_split även kontrollera så att endast tecknena a-ö förekommer i textsträngen.
hur fixar jag det med preg_split?

tack för vägledning

etanders 2006-09-14 19:38

Använd preg_replace istället för preg_split, eftersom du vill ersätta vissa tecken och inte dela upp strängen i bitar.
http://se.php.net/manual/sv/function.preg-replace.php

Kod:

$patterns = array("/[^a-zåäö\s]/i", "/\n\t\f/");
$replacements = array("", " "); //en tom sträng resp. ett mellanslag
$newString = preg_replace($patterns, $replacements, $oldString);

Alla tecken som inte är a-z, å, ä, ö (case-insensitive) eller "whitespace characters" ersätt med en tom sträng, d.v.s. de tas bort. Alla tecken som är \n, \t, \f ersätts med mellanrum.


Alla tider är GMT +2. Klockan är nu 09:59.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson