只允许字母、数字和一些外文字母?
Allow only letters, numbers and some foreign letters?
我只想允许用户使用字母、数字和一些外国字母。这有效,但它会删除外来字母(如 öçşğ)。
preg_replace('/[^a-zA-Z0-9\s]/', '', $nick)
所以我在下面使用了允许一些外文字母,但它仍然删除了外文字母。
preg_replace("@[^A-Za-z0-9\- şıüğçİŞĞÜÇ]+@i","",$nick);
允许它们的正确方法是什么?
关闭。只需要 u
(PCRE_UTF8) 修饰符,你错过了字母“ö”;)
preg_replace("@[^A-Za-z0-9\-\sşıüöğçİŞĞÜÖÇ]+@iu", '', 'Öm$ür Y_ağız');
returns Ömür Yağız
未经测试,但您可以将正则表达式简化为:
@[^a-z0-9şıüöğçİ -]@iu
当你想使用特定语言的字符时,你可以使用以下结构,这比用正则表达式写出你的语言的所有特定字符更容易理解:
preg_replace("/[^\w\p{Latin}]+/", '', 'Öm$ür Y_ağız');
并将“Latin”替换为您自己的 unicode 字符集 http://php.net/manual/en/regexp.reference.unicode.php
我只想允许用户使用字母、数字和一些外国字母。这有效,但它会删除外来字母(如 öçşğ)。
preg_replace('/[^a-zA-Z0-9\s]/', '', $nick)
所以我在下面使用了允许一些外文字母,但它仍然删除了外文字母。
preg_replace("@[^A-Za-z0-9\- şıüğçİŞĞÜÇ]+@i","",$nick);
允许它们的正确方法是什么?
关闭。只需要 u
(PCRE_UTF8) 修饰符,你错过了字母“ö”;)
preg_replace("@[^A-Za-z0-9\-\sşıüöğçİŞĞÜÖÇ]+@iu", '', 'Öm$ür Y_ağız');
returns Ömür Yağız
未经测试,但您可以将正则表达式简化为:
@[^a-z0-9şıüöğçİ -]@iu
当你想使用特定语言的字符时,你可以使用以下结构,这比用正则表达式写出你的语言的所有特定字符更容易理解:
preg_replace("/[^\w\p{Latin}]+/", '', 'Öm$ür Y_ağız');
并将“Latin”替换为您自己的 unicode 字符集 http://php.net/manual/en/regexp.reference.unicode.php