我希望我的用户不仅可以选择填写字母和数字,还可以填写“á”、“é”等“特殊”字母。但是,我不希望他们能够使用“!”、“@”、“%”等符号。
有没有一种方法可以写一个正则表达式来完成这个任务呢?(最好不要详细说明每个特殊字母。)
现在我有了:
$reg = '/^[\w\-]*$/';
发布于 2010-01-26 00:43:20
发布于 2010-01-26 00:42:02
哪些字符被认为是“单词字符”取决于区域设置。您应该设置一个在其自然字母表中包含这些字符的区域设置,并对正则表达式使用/u
修饰符,如下所示:
$str = 'perché';
setlocale(LC_ALL, 'it_IT@euro');
echo preg_match('#^\w+$#u', $str);
发布于 2010-01-26 00:42:47
您可以尝试使用这个正则表达式:
$reg = '~[^\\pL\d]+~u';
它还捕获重音字符
https://stackoverflow.com/questions/2133758
复制相似问题