Prevent double space when entering username

ぐ巨炮叔叔 提交于 2019-12-01 02:14:04
h2ooooooo

You can use a regex of (^\s+|\s{2,}|\s+$) to validate using preg_match:

if (preg_match('/(^\s+|\s{2,}|\s+$)/', $username)) {
    echo "Usernames can not contain a space at start/end of username and can't contain double spacing."; 
}

REGEX DEMO

Autopsy:

  • (^\s+|\s{2,}|\s+$):
    • ^\s+ matches 1 or more white-space characters (space/tab/newline) in the start of the string
    • | OR:
    • \s{2,} matches 2 or more white-space characters (space/tab/newline) anywhere in the string
    • | OR:
    • \s+$ matches 1 or more white-space characters (space/tab/newline) in the end of the string

If you wish to test them separately instead:

if (preg_match('/(^\s+|\s+$)/', $username)) {
    echo 'Usernames can not contain a space at start/end of username.'; 
} else if (preg_match('/\s{2,}/', $username)) {
    echo 'Usernames can not contain double spacing.';
}

Use the following:

$username = preg_replace('/[\s]+', " ", $usor);

That will replace multiple spaces with a single space.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!