InputTestHub

Arabic Text Normalizer

Normalises alef, yeh, hamza and teh marbuta variants so the same word matches however it was typed, with each rule switchable.

Text Nothing uploaded No sign-up Free, unlimited
Text tool
Paste something on the left to see the result.
In short Normalising Arabic collapses the variant forms of letters that are typed differently and read the same, so a search matches however the text was entered. The four alef forms — bare, with hamza above, with hamza below and with madda — become one; the Arabic yeh and the Persian and Urdu forms are unified; and the Urdu kaf ک and the Arabic kaf ك are two different code points for a letter most readers would not distinguish. Those differences are the single most common reason an Arabic or Urdu search returns nothing for a word that is plainly on the page. Teh marbuta to heh is offered but off by default, because it is lossier than the others and changes a grammatically meaningful ending. The critical rule is that this is normalisation for matching, not for display. Every rule here destroys a distinction that is correct in written text, which is exactly what makes search work and exactly why the output must never be written back over the original. Normalise a copy, index that, and keep what the author typed.

How to use the Arabic Text Normalizer

  1. Paste your text into the input box on the left.
  2. Adjust the options above the box if you need a different behaviour.
  3. The converted text appears on the right; press Copy to put it on your clipboard.

About the Arabic Text Normalizer

The Arabic Text Normalizer normalises alef, yeh, hamza and teh marbuta variants so the same word matches however it was typed, with each rule switchable. It runs as plain JavaScript inside the page, which means there is no upload step, no queue and no size limit imposed by a server — the only limit is your own device.

What people use it for

  • Building an Arabic search index that actually matches.
  • Deduplicating a list of Arabic names.
  • Comparing two Arabic strings that look identical.

Details

AlefFour forms collapse to one
ک vs كAn Urdu letter and an Arabic one
ة → هLossy — off by default
For matchingNot for display
Never overwriteKeep the original

The maths behind it

This tool uses each rule collapses a set of visually or semantically related code points onto one representative, which is what makes a search index return the same result for every spelling of a word. Every intermediate value is shown on screen, so the result can be checked by hand.

This is normalisation for matching, not for display. Every rule here destroys a distinction that is correct in written text, which is exactly why it makes search work — and exactly why the output should never be written back over the original.

Where this tool stops

It does not stem or lemmatise. Arabic morphology attaches prefixes and suffixes to a root, so "الكتاب" and "كتاب" still differ after normalisation; matching those needs a stemmer, which is a different and much larger problem.

Frequently asked questions

Why do two identical-looking Arabic words not match?
Almost always an alef variant or a hamza carrier. أ, إ, آ and ٱ all render close to ا and are four different code points, so a name typed with a hamza will never equal the same name typed without one. Normalising both sides is the fix.
Is this safe for Urdu?
Mostly, with two exceptions that are switched off or flagged. Urdu uses ک and ی as its own letters rather than as variants of the Arabic ك and ي, so normalising those damages Urdu while helping Arabic — turn the keheh rule off for Urdu text. Teh marbuta is off by default for the same reason.
Is there a limit on how often I can use the Arabic Text Normalizer?
Free, unlimited, and no email address required. You can use it a hundred times a day and nothing changes.
Does anything I enter leave my computer?
No. The Arabic Text Normalizer runs entirely in your browser using JavaScript. Nothing is transmitted, logged or stored, which you can verify yourself in the Network tab of your browser's developer tools.
How is the result calculated?
It uses each rule collapses a set of visually or semantically related code points onto one representative, which is what makes a search index return the same result for every spelling of a word. The full working is printed under the result, so you can follow every step rather than trusting a black box.
Who is the Arabic Text Normalizer for?
The jobs it is built for: building an Arabic search index that actually matches. Deduplicating a list of Arabic names. Comparing two Arabic strings that look identical. It is built for exactly those cases rather than being a general-purpose tool with this bolted on.
What are the limits of the Arabic Text Normalizer?
It does not stem or lemmatise. Arabic morphology attaches prefixes and suffixes to a root, so "الكتاب" and "كتاب" still differ after normalisation; matching those needs a stemmer, which is a different and much larger problem. Knowing where a tool stops being trustworthy matters more than the cases where it works.
What are the reference figures here?
Alef is Four forms collapse to one. ک vs ك is An Urdu letter and an Arabic one. ة → ه is Lossy — off by default. These are printed on the page itself, so you do not have to take them on trust.
Can I use the Arabic Text Normalizer on mobile?
Yes. The page is responsive and the page works in Chrome, Safari, Firefox, Edge and Samsung Internet on both Android and iOS. There is no app to install and nothing to sign into.

Related text tools

All 92
01

Case Converter

Converts text between twelve cases: UPPER, lower, Title, Sentence, camelCase, PascalCase…

02

Uppercase Converter

Converts any text to UPPERCASE instantly, keeping numbers, punctuation and line breaks exactly…

03

Lowercase Converter

Converts any text to lowercase, including text that was typed with Caps Lock on by mistake.

04

Title Case Converter

Converts headings to proper Title Case using AP and Chicago rules, keeping short words like…

05

Sentence Case Converter

Rewrites text in sentence case: first letter of each sentence capitalised, the rest lowercase…

06

camelCase Converter

Turns any phrase into camelCase for JavaScript, Java and JSON keys, stripping spaces, hyphens…

07

PascalCase Converter

Converts phrases to PascalCase (UpperCamelCase) for class names, React components and type…

08

snake_case Converter

Converts text to snake_case for Python variables, database columns and file names.

09

kebab-case Converter

Converts text to kebab-case for URLs, CSS class names and HTML attributes.

10

CONSTANT_CASE Converter

Converts text to SCREAMING_SNAKE_CASE for environment variables, constants and configuration…