preg_match PHP 验证用户名

发布于 2024-12-22 16:49:15 字数 182 浏览 0 评论 0原文

如何使用 php 验证用户名

我的规则是:

用户名只能包含字母、数字和 1 个下划线。

这是我当前的 preg_match

preg_match('/^[a-zA-Z0-9][_]{1}[a-zA-Z0-9]+$/',$_POST['uname'])

How to validate a username using php

My rules are:

Username can only contain letters, numbers and 1 underscore.

This is my current preg_match

preg_match('/^[a-zA-Z0-9][_]{1}[a-zA-Z0-9]+$/',$_POST['uname'])

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

愁杀 2024-12-29 16:49:15

这应该可以做到:

/^[a-zA-Z0-9]*_?[a-zA-Z0-9]*$/

请记住,单个项目的字符类是多余的。只写原子。 {1} 是另一个严重冗余的量词。

/[_]{1}/

与编辑相同

/_/

基于新的约束和克里斯的有用评论,这似乎是一个更好的正则表达式:

/^[a-zA-Z0-9]+_?[a-zA-Z0-9]+$/D

它匹配至少两个字符的用户名,不以可选下划线结尾或开头,并且没有换行符结束。

This should do it:

/^[a-zA-Z0-9]*_?[a-zA-Z0-9]*$/

Keep in mind that a character class of a single item is redundant. Write the atom solely instead. And {1} is another seriously redundant quantifier.

/[_]{1}/

is just the same as

/_/

Edit:

Based on the new constrains and in the helpful comment by chris, this seems to be a better regex:

/^[a-zA-Z0-9]+_?[a-zA-Z0-9]+$/D

It matches usernames of at least two character, not ending or beginning with the optional underscore, and no newlines at the end.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文