我对正则表达式知之甚少。如果我能达到以下目的,请帮帮我 用户名必须验证这一点。
我已经提出了这个正则表达式,但我无法满足以上所有要求。
/(?<![a-z_|.])([a-z](?:[a-z]|_|.(?!_.))+[a-z]|[a-z]{2})(?![a-z_|.])/
提前致谢。
答案 0 :(得分:1)
你不需要任何外观。简化你的正则表达式:
/^[a-zA-Z0-9](?!(?:.*\.){2}|(?:.*_){2}|.*[._]{2})[a-zA-Z0-9_.]*[a-zA-Z0-9]$/
答案 1 :(得分:-1)
罗马的一种方式......(简单易用的版本)
if(substr_count($string,'_')<=1 //for rule 4.
&& substr_count($string,'.')<=1 //for rule 4.
&& substr_count($string,'._')===0 //for rule 3.
&& substr_count($string,'_.')===0 //for rule 3.
&& preg_match('/^[^_\.][a-zA-Z]+[^_\.]$/',$string)// for rule 1. & 2.
) {
echo 'Valid';
}