为了账号安全,请及时绑定邮箱和手机立即绑定

在用户名的开头和结尾处都允许使用下划线

在用户名的开头和结尾处都允许使用下划线

PHP
慕莱坞森 2021-05-03 12:21:14
希望了解如何编辑用户名创建过程,以允许在用户名的开头和结尾使用下划线和连字符。当前,如果您用_结束用户名,则会将其从创建过程中删除。$regex = '/^[A-Za-z0-9]+[A-Za-z0-9_.]*[A-Za-z0-9]+$/';if(!preg_match($regex, $_POST['username'])) {        $_SESSION['error'][] = $language->register->error_message->username_characters;    }
查看完整描述

1 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

您只需要在第一个和最后一个字符集中添加下划线_和连字符-,即可让您的用户名以这两个新字符开头或结尾,并像这样编写您的正则表达式,

^[A-Za-z0-9_-]+[A-Za-z0-9_.]*[A-Za-z0-9_-]+$

并且\w与编写相同,[a-zA-Z0-9_]因此您可以将正则表达式压缩为此,

^[\w-]+[\w.]*[\w-]+$

只想提到一点,每当您-在字符集中编写连字符时,请确保始终将其放置为字符集中的第一个或最后一个字符,否则在不知不觉中,连字符可能会用作范围说明符,并且可能不充当文字连字符。尽管和上面的正则表达式一样,字符集中只有\w-,所以我们不必担心连字符的位置。

正则表达式演示

另外,我不确定您是否要允许仅使用一个字符的用户名(不同于通常只允许使用一个字符的变量名),但是如果您这样做,则可以将正则表达式修改为此,

^[\w-]+([\w.]*[\w-]+)?$

正则表达式演示仅允许一个字符作为用户名


查看完整回答
反对 回复 2021-05-28
  • 1 回答
  • 0 关注
  • 216 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信