验证潜在的多字节字符串是否具有最小长度并且仅包含白名单字符

问题描述 投票:0回答:3

我需要验证潜在的多字节输入字符串是否具有 5 个或更多字符,并且只能包含字母、数字、点和正斜杠。

  • S7åckÖv3rF/0w
    :通过
  • ääää
    :失败
  • 55555
    :通过
  • ./../.
    :通过

我正在尝试纠正我最初的尝试:

if (!(preg_match('/^\w{5,}$/', $username))) {
    return true;
}
php regex validation unicode preg-match
3个回答
2
投票

使用 unicode 属性:

if(!(preg_match('~^[\pL\pN./]{5,}$~u', $username))) { return true; }

\pL
代表任意字母
\pN
代表任意数字。


0
投票

试试这个:

if(!(preg_match('/^[\w.\/]{5,}$/u', $username))) { return true; }

0
投票
if(!(preg_match('/^[a-zA-Z0-9.\/]{5,}$/', $username))) { return true; }
© www.soinside.com 2019 - 2024. All rights reserved.