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

希望了解如何编辑用户名创建过程,以允许在用户名的开头和结尾使用下划线和连字符。


当前,如果您用_结束用户名,则会将其从创建过程中删除。


$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;

    }


慕莱坞森
浏览 217回答 1
1回答

守着星空守着你

您只需要在第一个和最后一个字符集中添加下划线_和连字符-,即可让您的用户名以这两个新字符开头或结尾,并像这样编写您的正则表达式,^[A-Za-z0-9_-]+[A-Za-z0-9_.]*[A-Za-z0-9_-]+$并且\w与编写相同,[a-zA-Z0-9_]因此您可以将正则表达式压缩为此,^[\w-]+[\w.]*[\w-]+$只想提到一点,每当您-在字符集中编写连字符时,请确保始终将其放置为字符集中的第一个或最后一个字符,否则在不知不觉中,连字符可能会用作范围说明符,并且可能不充当文字连字符。尽管和上面的正则表达式一样,字符集中只有\w和-,所以我们不必担心连字符的位置。正则表达式演示另外,我不确定您是否要允许仅使用一个字符的用户名(不同于通常只允许使用一个字符的变量名),但是如果您这样做,则可以将正则表达式修改为此,^[\w-]+([\w.]*[\w-]+)?$正则表达式演示仅允许一个字符作为用户名
打开App,查看更多内容
随时随地看视频慕课网APP