Laravel - 需要Regex来验证用户名,这会阻止表情符号但允许使用特殊字符

时间:2014-12-03 18:43:31

标签: php regex laravel

我想验证用户名这样一种方式,它不应该接受像:-),;-)等表情符号..但它应该接受带有字母和数字的特殊字符...艰难的...... < / p>

目前我申请了

$validator = Validator::make(Input::all(),array('username'=>'required|max:20|min:3');

提前致谢

1 个答案:

答案 0 :(得分:2)

这样的事情:

$validator = Validator::make(
    Input::all(),
    array('username'=> array('required',
                             'max:20',
                             'min:3',
                             'Regex:/\A(?!.*[:;]-\))[ -~]+\z/')
    )
);

请注意,您可以缩短这样的要求:

$validator = Validator::make(
    Input::all(),
    array('username'=> array('required',
                             'Regex:/\A(?!.*[:;]-\))[ -~]{3,20}\z/')
    )
);

显然,你需要完成你想要禁止的其他发射器。

您可以使用.代替[ -~]扩展允许的字符,将字符串限制为ascii字符。