Nasıl PHP preg ile aksanlı karakterler maç?

3 Cevap php

Ben benim kullanıcıların harf ve sayı doldurmak için değil, sadece bir seçenek vermek istiyorum, ama "A", "é", vb gibi aynı zamanda "özel" harfler Ancak, ben onları semboller kullanmak mümkün istemiyorum gibi "!", "@", "%", vb

Bunu gerçekleştirmek için bir regex yazmak için bir yolu var mı? (Tercihen, her özel mektup belirtmeden).

Şimdi var:

$reg = '/^[\w\-]*$/';

3 Cevap

Sen Unicode character properties karakterleri tanımlamak için kullanabilirsiniz:

/^[\p{L}-]*$/u

\p{L} Unicode harf karakter sınıfını tarif eder.

"Word-karakterler" olarak kabul edilir ne karakterleri yerel ayara bağlıdır. Bunu doğal alfabesiyle karakterleri olan bir yerel ayarı, ve bu gibi regexp için /u değiştirici, kullanmalısınız:

$str = 'perché';
setlocale(LC_ALL, 'it_IT@euro');
echo preg_match('#^\w+$#u', $str);

Bu regex ile deneyebilirsiniz:

$reg = '~[^\\pL\d]+~u';

Vurgulu karakterleri yakalamak hangi