[PHP] domme vraag: regex é, ê, etc.

Pagina: 1
Acties:
  • 623 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
Ik gebruik de volgende regex-string voor een naam:

PHP:
1
$alnum_ext_regex = "/^[a-zA-Z0-9`\\-.' ]+\$/";


Maar blijkbaar komen onze Belgische en Franse vrienden hier niet door heen met hun é ê en è namen. Hoe pak ik alle letters mee zonder een enorme regex-string te bouwen?

(ik heb gezocht, maar waarschijnlijk ziet de search ê als een e, ik kreeg geen topics boven water terwijl ik zou zweren dat ik pas de honderdste ben die dit vraagt).

iOS developer


Acties:
  • 0 Henk 'm!

  • robbert
  • Registratie: April 2002
  • Laatst online: 12-09 22:19
code:
1
2
\w
    any "word" character

Is dat wat je zoekt:

Acties:
  • 0 Henk 'm!

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
Dus "/^[a-zA-Z0-9`\\-.' ]+\$/" wordt "/^[\w`\\-.' ]+\$/" ?

-----------

Als ik in JavaScript (ik doe dubbelsafe :)) this.alnum_ext_regex = /^[\w`\-.' ]+$/; gebruik, dan pakt hij é nog steeds niet, maar 'normale' letters wel.

[ Voor 59% gewijzigd door BikkelZ op 21-09-2007 12:28 ]

iOS developer


Acties:
  • 0 Henk 'm!

  • sky-
  • Registratie: November 2005
  • Niet online

sky-

qn ella 👌

In javascript is 't niet "dubbelsafe", javascript valt te omzeilen, houd het dus bij PHP, wel zo handig, lijkt me.

don't be afraid of machines, be afraid of the people who build and train them.


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

k8skaaay schreef op vrijdag 21 september 2007 @ 13:51:
In javascript is 't niet "dubbelsafe", javascript valt te omzeilen, houd het dus bij PHP, wel zo handig, lijkt me.
Je snapt het niet, doordat je het dubbelsafe (lees: OOK in javascript) doet scheelt het een request naar de server, zodra Javascript uit staat of dat er geknoeid is met het script dan maakt het alsnog niet uit, want dat vangt het php script wel af. "dubbelsafe" dus

Acties:
  • 0 Henk 'm!

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
Erkens schreef op vrijdag 21 september 2007 @ 13:53:
[...]

Je snapt het niet, doordat je het dubbelsafe (lees: OOK in javascript) doet scheelt het een request naar de server, zodra Javascript uit staat of dat er geknoeid is met het script dan maakt het alsnog niet uit, want dat vangt het php script wel af. "dubbelsafe" dus
Exact.

iOS developer


Acties:
  • 0 Henk 'm!

  • TweakBoy
  • Registratie: Augustus 2001
  • Laatst online: 08-09 11:41

TweakBoy

---

probeer het eens met de /u modifier... /u voor unicode zoek er maar eens op...
heb ik tijdje terug ook gebruikt toen ik veel lappen duitste tekst moest rippen van een site..

---


Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 00:05
Als je unicode gebruikt, dan is \pL|\pN de meest simpele: "Property Letter" of "Propery Number

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:56
robbert schreef op vrijdag 21 september 2007 @ 12:03:
code:
1
2
\w
    any "word" character

Is dat wat je zoekt:
Waarschijnlijk niet, want word characters in de context van Perl zijn letters die in programmeertalen identifiers kunnen worden; dat zijn letters, cijfers én underscores; lijkt me dat je hier geen cijfers en underscores wil toestaan. Sowieso bevatten de word characters alleen ASCII characters voor zover ik weet, dus dan heb je er nog niets aan.

Acties:
  • 0 Henk 'm!

  • Flying_Thunder
  • Registratie: December 2001
  • Niet online
Soultaker schreef op zaterdag 22 september 2007 @ 18:50:
[...]
Sowieso bevatten de word characters alleen ASCII characters voor zover ik weet, dus dan heb je er nog niets aan.
Nee, dit is afhankelijk van je locale instelling:
A "word" character is any letter or digit or the underscore character, that is, any character which can be part of a Perl "word". The definition of letters and digits is controlled by PCRE's character tables, and may vary if locale-specific matching is taking place. For example, in the "fr" (French) locale, some character codes greater than 128 are used for accented letters, and these are matched by \w.
http://nl3.php.net/manual...e.pcre.pattern.syntax.php

Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 00:05
En het probleem van locales hier is dat je niet handig een 'fr' locale kunt maken om franse usernames te controleren, een 'be' locale voor belgische, een 'de' voor duitse etc.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
MSalters schreef op zondag 23 september 2007 @ 22:57:
En het probleem van locales hier is dat je niet handig een 'fr' locale kunt maken om franse usernames te controleren, een 'be' locale voor belgische, een 'de' voor duitse etc.
Inderdaad ze komen allemaal op het zelfde punt uit. In principe zou iemand uit China zelfs zijn naam moeten kunnen opgeven, zolang die maar uit letters bestaat.

iOS developer


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dat ligt natuurlijk een beetje aan de context. Het is niet vreemd om je te beperken tot het Latijns alfabet inclusief die letters met diakritische tekens, zodat de boel maintainable blijft (admins die een naam in moeten tikken, derden die de naam moeten kunnen lezen, etc.). Het zou wat zijn als een zooi chinezen hier zich op GoT kunnen registreren met een chinese naam - die gaan de meeste westerlingen echt niet uit elkaar houden. Andersom geldt dat wel: het Latijns alfabet is vrijwel overal bekend en voor alle andere schriften (grieks, russisch, aziatisch, arabisch, ...) bestaat wel een Latijnse schrijfwijze.

Ik bedoel, op het scorenbord tijdens de Olympische Spelen zie je van Chinezen ook hun naam in Latijnse letters :)

[ Voor 4% gewijzigd door .oisyn op 24-09-2007 11:25 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 08:46

pietje63

RTFM

.oisyn schreef op maandag 24 september 2007 @ 11:22:
Ik bedoel, op het scorenbord tijdens de Olympische Spelen zie je van Chinezen ook hun naam in Latijnse letters :)
Beetje offtopic maar dat is lang niet altijd de Chinese naam in Latijnse letters. Veel Chinese namen betekenen iets, dus kiezen ze vaak iets heel anders.

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
.oisyn schreef op maandag 24 september 2007 @ 11:22:
Dat ligt natuurlijk een beetje aan de context. Het is niet vreemd om je te beperken tot het Latijns alfabet inclusief die letters met diakritische tekens, zodat de boel maintainable blijft (admins die een naam in moeten tikken, derden die de naam moeten kunnen lezen, etc.). Het zou wat zijn als een zooi chinezen hier zich op GoT kunnen registreren met een chinese naam - die gaan de meeste westerlingen echt niet uit elkaar houden. Andersom geldt dat wel: het Latijns alfabet is vrijwel overal bekend en voor alle andere schriften (grieks, russisch, aziatisch, arabisch, ...) bestaat wel een Latijnse schrijfwijze.

Ik bedoel, op het scorenbord tijdens de Olympische Spelen zie je van Chinezen ook hun naam in Latijnse letters :)
Het enige wat je dan doet is het probleem opschuiven tot je systeem ook in China verkocht gaat worden. Maar in principe zou ik al blij zijn met een oplossing voor alle westerse letters, en niet alleen ASCII letters.

iOS developer


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

hier staat volgens mij een volledige lijst.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 10-09 11:15
[quote=http://www.regular-expressions.info/javascript.html]
• No Unicode support, except for matching single characters with \uFFFF

Vind het een geweldige site, kan je ook eenvoudig je (JavaScript) regex controleren/uitproberen: http://www.regular-expressions.info/javascriptexample.html

[ Voor 36% gewijzigd door riezebosch op 24-09-2007 14:03 ]

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


Acties:
  • 0 Henk 'm!

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
Er moeten hier toch mensen rondlopen die dit getackeld hebben?

iOS developer

Pagina: 1