Php RegExp,只在特定范围内使用字母和数字以及点,并且点字符不应用于开始和结束

时间:2016-12-11 18:35:43

标签: php regex

我刚刚读到有关regexp的内容,而且很难弄明白。 我需要一点帮助。 我想在我的网站上查看用户名以进行注册,它应具备以下条件:

最小字符= 4

最大字符数= 32

接受小写字母

接受大写字母

接受点.(不在第一个位置和最后一个字符位置) 并且点.字符不能出现在另一个.

之后

我试过这个: ^[\a.a-zA-Z]但它不起作用。 有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

preg_matchstrpos函数和特定的正则表达式模式使用以下方法:

function validateUsername($username = '') {
    return (strpos($username, "..") === false) 
           && preg_match('/^(?!\.)[a-z.]{3,31}[^.]$/i', $username);
}

// Testing ...
var_dump(validateUsername('some.UserName.with.dotS'));   // bool(true)
var_dump(validateUsername('some.UserName..with.dotS'));  // bool(false)
var_dump(validateUsername('.someusernamE'));             // bool(false)
var_dump(validateUsername('abc.'));                      // bool(false)