contains(text)
포함 여부
허용된 일치가 하나라도 있는지 bool로 반환합니다.
서버 전송 없이 한국어 욕설을 감지하고, 원문 범위까지 확인해 마스킹하세요.
설치 / 01
dart pub add korean_profanity
실제 검사 / 02
페이지의 검사는 패키지에 포함된 실제 KoreanProfanityFilter strict 사전을 호출합니다.
RESULT / STRICT
검사 버튼을 누르면 결과를 표시합니다.
대기첫 일치 증거
API / 03
불리언 확인부터 원문 범위와 마스킹까지 하나의 불변 필터 인스턴스에서 동기식으로 실행합니다.
contains(text)
허용된 일치가 하나라도 있는지 bool로 반환합니다.
findAll(text)
겹치는 결과를 유지하고, 원문 순서의 불변 목록과 UTF-16 범위를 반환합니다.
mask(text)
겹치거나 맞닿은 범위를 합친 뒤 각 원문 스칼라를 한 개의 마스크 문자로 바꿉니다.
경계 / 04
정규화는 의도적으로 좁습니다. 내부 공백과 숫자는 제한적으로 잇지만, 이모지는 경계로 남깁니다.
| 입력 | strict 결과 | 근거 |
|---|---|---|
씨1발 | 검출 | 내부 숫자를 간격으로 처리 |
씨 11 발 | 검출 | 내부 공백과 숫자를 지나 일치 |
시간 | 미검출 | 일반 단어 allowlist 보호 |
시😀발 | 미검출 | 이모지는 하드 경계 |
로컬 실행 / 05
검출과 마스킹은 오프라인, 동기식으로 실행됩니다. 이 패키지 자체는 입력을 전송하지 않습니다. 다만 앱의 로깅이나 네트워크 코드는 별도이므로 직접 점검해야 합니다.
크기는 0.1.0 릴리스 측정치입니다. 컴파일러 트리 셰이킹과 소비 코드 경로에 따라 달라질 수 있습니다.
빠른 시작 / 06
기본 import에는 오탐을 줄이기 위한 strict 사전이 포함됩니다.
import 'package:korean_profanity/korean_profanity.dart';
void main() {
final filter = KoreanProfanityFilter();
final matches = filter.findAll('씨 11 발');
print(filter.contains('씨 11 발')); // true
print(matches.first.start); // 0
print(matches.first.end); // 6
print(filter.mask('씨 11 발')); // ******
}
책임 있는 사용 / 07
이 패키지는 사전 기반 매처이며 완전한 안전 장치나 중재 정책이 아닙니다. 새로운 표기를 놓치거나 무해한 문장을 표시할 수 있습니다. 서비스 대상에 맞춰 결과를 검토하고, 사람에게 영향을 주는 결정에는 이의 제기 경로를 제공하세요.