사용자의 사용자 이름을 확인하려고합니다. 30 자 이하의 문자와 숫자를 사용할 수 있기를 바랍니다.특정 필터 찾기 PHP
나를 위해이 기능을 수행 할 수있는 PHP 필터가 내장되어 있습니까? 그 수동 정규식 것들이 내 머리를 다치게 ...
사용자의 사용자 이름을 확인하려고합니다. 30 자 이하의 문자와 숫자를 사용할 수 있기를 바랍니다.특정 필터 찾기 PHP
나를 위해이 기능을 수행 할 수있는 PHP 필터가 내장되어 있습니까? 그 수동 정규식 것들이 내 머리를 다치게 ...
필터가 내장되어 있지 않습니다.
learning regular expressions을 고려해 볼 수도 있습니다. 은이 아닙니다.
$valid = (strlen($username) <= 30 && preg_match("#^[a-z0-9A-Z]+$#", $username));
'strlen()'을 사용하는 대신에 정규 표현식에서 한정 기호를 사용하는 것을 고려하십시오. – FtDRbwLXw6
그러나이 작품 간단한 정규식을 가지고,이 특정 일에 대한 필터가 없습니다 :
function isValidUsername($username) {
return (strlen($username) <= 30) && (preg_match("/^[a-z0-9]+$/i", $username) == 1);
}
는 여기를해야하는 기능입니다. 나는 정규 표현식의 작동 방식을 배우는 데 시간을 할애 할 것을 권장한다. 그것들은 프로그래머의 도구 상자에서 가장 강력하고 유용한 도구 중 하나입니다.
업데이트 : 위 주석에서 구분 기호 제안을 사용하여, 약간 내 기능을 단순화 :
업데이트 2 : 그 $을 보장하기 위해 추가/D 패턴을 수정하는 것은 \ n을 상대로 경기를 방지 할 수 있습니다.
function isValidUsername($name)
{
return preg_match("/^[a-zA-Z0-9]{1,30}$/D", $name);
}
이러한 요구 사항을 충족시키기 위해 PHP에는 아무 것도 내장되어 있지 않습니다. 난 당신이 디자인 비평을 요청하지만, 사용자 이름이 정말 필요하면 열심히 생각하십시오하지 않았다 알고
$valid = (bool)preg_match('/^[a-zA-Z0-9]{1,30}$/', $username);
: 여기에 비록 당신이 필요로하는 것 정규식이다. 그렇지 않다면 전자 메일 주소를 사용하는 것이 훨씬 사용자 친화적이기 때문에 전자 메일 주소를 사용하는 것이 좋습니다. 어쨌든 사용자에게 해당 정보를 요청할 가능성이 큽니다.
그래서 나는 말할 것이다. if ($ _POST [ 'username'] == $ valid) {echo "username is valid". ... . 그러면 $ username이 될 것입니까? – Depetrify
@Depetrify : 아니요, 확인하려는 사용자 이름이'$ _POST [ 'username']'에 있으면 위의 코드에서'$ username' 대신 그 것을 사용할 것입니다. '$ valid'는'TRUE' 또는'FALSE'가 될 것이고 거기에서 갈 수 있습니다. – FtDRbwLXw6
http://stackoverflow.com/questions/1330693/validate-username-as-alphanumeric-with-underscores – NoName13
불행히도 정규식은 당신이 설명하는 직업을위한 최고의 도구입니다. http://www.regexbuddy.com과 같은 것/그들에 대해 배우기에 좋은 도구입니다! 그리고 나는 최고의 정규 표현식으로'/^[a-z0-9] {1,30} $/i'와 함께 갈 것입니다! – cmbuckley
LOL ... 답변은 모두 똑같은 아이디어입니다! –