Arabic engineering reference
Arabic Tashkeel: Diacritics and Removal Regex
Arabic tashkeel consists of combining marks attached to base letters, including short vowels, tanwin, shadda, and sukun. This reference lists common marks and additional signs in the Arabic block, explains a deliberately scoped removal regex, and recommends preserving original text when pronunciation, names, or Quranic annotation matters.
Common marks and combining signs
The dotted circle is a display aid, not part of the mark. Arabic labels are descriptive labels; the English column follows Unicode character names. Madda and combining hamza are included for identification, but the conservative removal example below does not remove them.
| Glyph | Arabic label | Unicode name (without Arabic prefix) | Code point |
|---|---|---|---|
| ◌ً | تنوين الفتح | Fathatan | U+064B |
| ◌ٌ | تنوين الضم | Dammatan | U+064C |
| ◌ٍ | تنوين الكسر | Kasratan | U+064D |
| ◌َ | فتحة | Fatha | U+064E |
| ◌ُ | ضمة | Damma | U+064F |
| ◌ِ | كسرة | Kasra | U+0650 |
| ◌ّ | شدة | Shadda | U+0651 |
| ◌ْ | سكون | Sukun | U+0652 |
| ◌ٓ | مدة فوق | Maddah Above | U+0653 |
| ◌ٔ | همزة فوق | Hamza Above | U+0654 |
| ◌ٕ | همزة تحت | Hamza Below | U+0655 |
| ◌ٰ | ألف خنجرية | Letter Superscript Alef | U+0670 |
Additional Arabic-block signs
Together with the common-mark table, this table covers every nonspacing mark (Unicode general category Mn) in the Arabic block U+0600–U+06FF in the Unicode 17 character database. Arabic labels are descriptive translations, not standardized Arabic character names; the English names identify the characters precisely.
The additional signs include honorific marks, smaller vowel marks, extended-language vowel signs and Quranic annotations. This inventory does not include all combining marks in Arabic extension blocks. Do not remove this entire table as a default normalization policy.
| Glyph | Arabic descriptive label | Unicode name (without Arabic prefix) | Code point |
|---|---|---|---|
| ◌ؐ | علامة صلى الله عليه وسلم | Sign Sallallahou Alayhe Wassallam | U+0610 |
| ◌ؑ | علامة عليه السلام | Sign Alayhe Assallam | U+0611 |
| ◌ؒ | علامة رحمة الله عليه | Sign Rahmatullah Alayhe | U+0612 |
| ◌ؓ | علامة رضي الله عنه | Sign Radi Allahou Anhu | U+0613 |
| ◌ؔ | علامة تخلص | Sign Takhallus | U+0614 |
| ◌ؕ | طاء صغيرة عالية | Small High Tah | U+0615 |
| ◌ؖ | ألف ولام وياء صغيرة عالية مركبة | Small High Ligature Alef With Lam With Yeh | U+0616 |
| ◌ؗ | زاي صغيرة عالية | Small High Zain | U+0617 |
| ◌ؘ | فتحة صغيرة | Small Fatha | U+0618 |
| ◌ؙ | ضمة صغيرة | Small Damma | U+0619 |
| ◌ؚ | كسرة صغيرة | Small Kasra | U+061A |
| ◌ٖ | ألف تحتية | Subscript Alef | U+0656 |
| ◌ٗ | ضمة مقلوبة | Inverted Damma | U+0657 |
| ◌٘ | علامة نون غنة | Mark Noon Ghunna | U+0658 |
| ◌ٙ | زواراكاي | Zwarakay | U+0659 |
| ◌ٚ | علامة حركة صغيرة على شكل حرف لاتيني فوق | Vowel Sign Small V Above | U+065A |
| ◌ٛ | علامة حركة صغيرة على شكل حرف لاتيني مقلوب فوق | Vowel Sign Inverted Small V Above | U+065B |
| ◌ٜ | نقطة حركة تحت | Vowel Sign Dot Below | U+065C |
| ◌ٝ | ضمة معكوسة | Reversed Damma | U+065D |
| ◌ٞ | فتحة بنقطتين | Fatha With Two Dots | U+065E |
| ◌ٟ | همزة متموجة تحت | Wavy Hamza Below | U+065F |
| ◌ۖ | صاد ولام وألف مقصورة صغيرة عالية مركبة | Small High Ligature Sad With Lam With Alef Maksura | U+06D6 |
| ◌ۗ | قاف ولام وألف مقصورة صغيرة عالية مركبة | Small High Ligature Qaf With Lam With Alef Maksura | U+06D7 |
| ◌ۘ | ميم صغيرة عالية أولية | Small High Meem Initial Form | U+06D8 |
| ◌ۙ | لام وألف صغيرة عالية | Small High Lam Alef | U+06D9 |
| ◌ۚ | جيم صغيرة عالية | Small High Jeem | U+06DA |
| ◌ۛ | ثلاث نقاط صغيرة عالية | Small High Three Dots | U+06DB |
| ◌ۜ | سين صغيرة عالية | Small High Seen | U+06DC |
| ◌۟ | صفر مستدير صغير عال | Small High Rounded Zero | U+06DF |
| ◌۠ | صفر مستطيل قائم صغير عال | Small High Upright Rectangular Zero | U+06E0 |
| ◌ۡ | رأس خاء صغيرة عالية بلا نقطة | Small High Dotless Head Of Khah | U+06E1 |
| ◌ۢ | ميم صغيرة عالية منفصلة | Small High Meem Isolated Form | U+06E2 |
| ◌ۣ | سين صغيرة منخفضة | Small Low Seen | U+06E3 |
| ◌ۤ | مدة صغيرة عالية | Small High Madda | U+06E4 |
| ◌ۧ | ياء صغيرة عالية | Small High Yeh | U+06E7 |
| ◌ۨ | نون صغيرة عالية | Small High Noon | U+06E8 |
| ◌۪ | علامة وقف منخفضة فارغة الوسط | Empty Centre Low Stop | U+06EA |
| ◌۫ | علامة وقف عالية فارغة الوسط | Empty Centre High Stop | U+06EB |
| ◌۬ | علامة وقف مستديرة عالية ممتلئة الوسط | Rounded High Stop With Filled Centre | U+06EC |
| ◌ۭ | ميم صغيرة منخفضة | Small Low Meem | U+06ED |
Remove common vocalization only
For a search key, this expression removes U+064B–U+0652 and U+0670. It preserves madda, hamza and the supplementary signs above. The function is intentionally named for its scope: do not label it “remove all Arabic marks.”
function removeCommonTashkeel(text) {
return text.replace(/[\u064B-\u0652\u0670]/g, "");
}
const original = "\u0643\u064E\u062A\u064E\u0628\u064E";
const searchKey = removeCommonTashkeel(original);Preserve evidence and pronunciation
Guidance: store the original alongside a derived search key. Removing marks can merge differently vocalized words and names. In Quranic text, preserve the supplied marks and annotation unless a qualified editorial policy defines a separate search representation.
Do not use /\p{M}/gu as a supposedly Arabic-only cleanup: it removes combining marks across scripts. Likewise, NFD followed by indiscriminate mark removal can affect hamza-bearing letters through decomposition. Normalization and vocalization removal are separate operations; test both against your actual corpus.
Related references and tools
- Arabic Digits: Unicode and JavaScript Reference
- Arabic Unicode Ranges: Blocks, Regex and Font Subsets
- Arabic Letter Forms: 28 Letters and Joining Rules
- Arabic Language Codes: lang, dir and hreflang
- Arabic Numeral Converter
- Arabic Text Normalizer
- Arabic Regex Patterns
- Arabic Search Normalization
- What lang="ar" and dir="rtl" each do
Questions and answers
What does the removal regex delete?
The example deletes common vocalization marks U+064B–U+0652 and superscript alef U+0670. It preserves combining hamza, madda, and the supplementary signs listed on this page.
Should Quranic text or names be stripped?
Preserve the original text. A separate search key may remove selected marks under a documented policy, because stripping can lose pronunciation and merge distinct spellings.