使用preg_match验证没有空格和字母变体的昵称

时间:2016-12-29 20:11:43

标签: php preg-match

我对验证昵称的方式有疑问:

preg_match("^[A-Za-z0-9]+$^", $nickname );

它工作正常,但有一个问题,我无法解决,是它允许空格和字母变体,如éç,< em>ñ我不想允许这些。我该如何解决?

1 个答案:

答案 0 :(得分:3)

我认为你应该使用/^[A-Za-z0-9]+$/^表示该行的开头,$表示该行的结尾。通过将字符串包装在^中,您正在制作正则表达式分隔符,而不是典型的/。在这种情况下,^会忽略它的开头意义。

编辑:更好的是/\A[A-Za-z0-9]+\z/。这是一个微妙的修改。 ^可以是行的开头或字符串的开头,但\A始终是字符串的开头。同样地,$可以是行的结尾或字符串的结尾,但\z是字符串的结尾。因此,通过使用^$,昵称可能包含换行符,但如果您使用\A\z,则无法使用。{1}}和public override Task OnInitializeAsync(IActivatedEventArgs args) { Window.Current.Content = new Views.ShellNavBar(); return Task.CompletedTask; }