b2KIT

PII Detector

Detect personally identifiable information (emails, phones, SSNs, addresses) in text using pattern matching.

Tested tool guide Tested browser tools Checked August 16, 2026

What PII Detector does, with a checked example

Paste any block of text and this tool scans it for strings shaped like email addresses, US phone numbers, SSNs, and street addresses, then reports each match by type and the exact text that matched. Detection is pattern matching that runs entirely in the browser; nothing you paste is sent anywhere. The thing users most often get wrong is that a match proves a format appears, not that the data is real. 123-45-6789 gets flagged even though it is a widely used dummy SSN, and a clean result proves nothing, because unusual formats and uncovered categories pass silently.

Worked example

A concrete input and expected output from the current implementation.

Input

Client note: [email protected], phone 415-555-0137, SSN on file 123-45-6789. Prefers email contact.

Expected output

3 matches found
- Email: [email protected]
- Phone: 415-555-0137
- SSN: 123-45-6789

Each match is found by format alone. The email has a local part, an @ sign, and a domain; the phone uses the hyphenated xxx-xxx-xxxx shape; the SSN is nine digits in the XXX-XX-XXXX arrangement. The tool reports type and matched text, not whether the phone or SSN belongs to a real person, which is why the well-known dummy number 123-45-6789 appears in the results.

How the result is produced

1

One pattern per category

The scan runs the pasted text against a fixed set of regular expressions, one per PII category: an email pattern for local part, @ sign, and domain; a phone pattern for hyphenated and parenthesized US formats; an SSN pattern for nine digits in XXX-XX-XXXX arrangement; and an address heuristic for a number followed by street words. Every hit is reported with its type and the exact text that matched.

2

Shape matching has sharp edges

Patterns match shape, not meaning, so small format differences decide what is found. A hyphenated number like 415-555-0137 is caught, while the same digits written 415.555.0137 or 4155550137 may not be, depending on the patterns. The SSN pattern treats any nine digits in XXX-XX-XXXX form as an SSN, so strings like 000-00-0000 are flagged too. Matching is deterministic, runs locally in the page, and identical input gives an identical list.

Good uses

  • Before pasting a support ticket, test record, or database export into a shared workspace or an AI assistant, scan it to see which fields hold emails, phones, or SSNs so you can redact them first.
  • Audit a draft email, report, or internal memo for stray customer contact details or ID numbers before sending it to a wider audience.
  • When cleaning a CSV or chat log for reuse, use the per-type findings as a checklist of values to review and remove from the cleaned copy.

Limits and checks

  • A match is a format hit, not a fact. A date like 05-07-1985, a long order number, or any dash-separated digit string can be reported as a phone or SSN. Read each hit in context before redacting anything.
  • Misses are silent. Unusual presentations such as 415.555.0137 or alex [at] example [dot] com, non-US phone formats, and any category the patterns do not cover produce no warning at all. A result of no matches means only that nothing matched the patterns.
  • Street addresses are the weakest category. Addresses have no fixed shape, so the heuristic both misses real addresses and grabs fragments: 123 Main St without a city, or a product code that happens to look like a house number. Treat address hits as a prompt to review, not a confirmed finding.

Common questions

Does it detect real SSNs, or just anything in SSN format?

Just the format. Any nine digits in the XXX-XX-XXXX arrangement get flagged, including never-issued strings like 000-00-0000 and well-known dummy numbers like 123-45-6789. A genuinely issued SSN presented unusually, such as without dashes, can slip through. The tool matches shapes and cannot consult the SSA; because it runs in the browser, it has no database to check against.

Is the text I paste uploaded anywhere?

No. Detection is pattern matching that runs inside the page, and nothing you paste is transmitted or stored. That is also why the tool can flag formats but cannot verify identities: no data ever reaches an outside service. If you need certainty about a specific number, verify it through official channels instead.

References and verification

The example and behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools