2008-10-23 4 views
0

PHP에서 유효성 검사 클래스에 대한 필터 라이브러리를 구축 중이며 일부는 정규 표현식을 사용합니다. 나는 많은 필터를 염두에 뒀지 만 잠재적으로 놓치고 싶지는 않습니다. 가장 자주 정규 표현식을 사용하여 확인합니까? 라이브러리에서 여전히 유용 할 것입니다. 확인해야하는 그리 흔하지 않은 것들은 무엇입니까? 참고 : 나는 실제 정규식 코드를 찾고 있지 않다. 단지 그것을 사용하는 코드이다.정규 표현식의 가장 일반적인 용도는 무엇입니까?

답변

4

정규식은 예상되는 사용 사례를 가지고 강력하게 테스트되어야합니다. 따라서 완전하고 일반적인 라이브러리를 개발하는 것이 어려울 수 있습니다. 필자가 지금 알고있는 기능 라이브러리를 목표로합니다. 그런 다음 적절한 테스트 케이스가있을 때이 목록에 나중에 추가하십시오.

여기 말했다 몇 가지 일반적인 사용 사례 것을 : 그래서 당신은 유형 정규 표현식을 찾고

+0

라이브러리를 만들 때이 목록에있는 몇 가지 사항이 로캘에 따라 다릅니다. – EBGreen

+0

좋은 지적, EB 그린. 감사. – VirtuosiMedia

1

SSN

숫자 데이터
전화 번호
날짜
우편 번호
우리 유효성 검사에 사용 하시겠습니까?

전화 (다양한 국제 형식), 우편 번호, 네시오의 답변에 추가 코드, 신용 카드 #S, 이메일, 날짜, 숫자, 사회 보장 번호, URL을 (HTTP, FTP, ...)

1

우편 번호. ..

  • 암호
  • 이메일 주소
  • 불허 문자 다양한 영숫자가 아닌 문자 같은 텍스트 필드에 전세
1

SQL 주입 공격 패턴

'[\s]*-- 

내 RE 사용의 대부분은 표준화 된 형식으로 다양한 소스 나에게 주어진 데이터를 수정한다

((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,255}) 
+0

SQL 삽입은 바인딩 된 매개 변수에 의해 반박되고 데이터를 정리하지 않아야합니다. –

+0

바운드 매개 변수는 시도를 포착하는 데 도움이되지 않으며 시도한 바보를 핵으로 만들지 않습니다. 오류가 발생합니다. 해킹하려고하는 사람을 잡으려면 입력 내용을 확인해야합니다. 그런 다음 추가 안전을 위해 바인딩 된 매개 변수를 사용할 수 있습니다. –

0

암호 강도. CSV 또는 탭으로 구분 된 다음 TextPad에서 다양한 RE 변환을 통해 실행되는 많은 내보내기 작업이 문서를 능가합니다.

1

내 주요 용도는 :

  • 텍스트
  • 입력에 라인 선택
  • 검증 포맷
  • 분석/소독 입력
  • 파싱 떨어져 당기는
  • 광대 한 사용자 정의 ("구성 가능한 구성", 바로 가기 허용) 제공 ...)

이러한 항목이 중복됩니다. 그러나 그것은 모두 인간의 의견과 관련이 있습니다. 기계 가독성과 사람이 읽을 수있는 것은 두 가지입니다. 정규 표현식은 완전한 문법을 ​​필요로하지 않고 인간 중심적 (우리가 알고있는 것에 대해)을 다루도록 도와줍니다.

관련 문제