채택완료

정규표현식 문의

예: $member['mb_id']가 총길이는 10 (앞영문7글자 뒤숫자3글자 조합)인 경우

어떤 식으로 표현이 가능할까요.

요즘, 이런 패턴으로 스팸가입하는 유저가 많더라구요.

답변 3개 / 댓글 5개

채택된 답변
+20 포인트

$pattern = "#^[a-zA-Z]{7}\d{3}$#";

답변에 대한 댓글 3개

평정심 님 이렇게 넣어주면 될까요?

$pattern = "#^[a-zA-Z]{7}\d{3}$#";

$rsql = " select mb_id from {$g5['member_table']} where mb_name in ('', ' ', 'Ȳ', '{$pattern}') ";
무엇보다 중요한 것은 직접해 보시는것이 가장 빠르겠죠.
하지만 패턴이 이렇게는 될것 같지 않아 보입니다.
될지 안될지는 모르겠지만 참조해 보시죠.
where mb_name in ('', ' ', 'Ȳ') and mb_name REGEXP '{$pattern}'
평정심 님, 감사합니다. ^^*

답변해주신 두 분 모두 감사합니다. 

스팸회원 다 죽었엉. 31603582_1556701261.7008.gif

2019-05-01 (수) 17:43:04

<script type="text/javascript">

var filter = /\b[a-z]{7}[0-9]{3}\b/i

console.log(filter.test("abcdefg123"));

</script>

답변에 대한 댓글 2개

혹시, PHP 코드로 가능할까요?

https://sir.kr/g5_tip/3655
제로나라 님 코드에 넣어서 막아볼까 하거든용.

$rsql = " select mb_id from {$g5['member_table']} where mb_name in ('', ' ', 'Ȳ', '여기넣어볼까하구') ";
2019-05-01 (수) 17:58:36
preg_match('/\b[a-z]{7}[0-9]{3}\b/i', $input_line, $output_array);

https://www.phpliveregex.com/#tab-preg-match

답변을 작성하려면 로그인이 필요합니다.