A library for handling Arabic strings, including removing diacritics, normalizing characters, and more.
npm install @flowdegree/arabic-strings
import * as arabicStrings from '@flowdegree/arabic-strings';
// Define a string with Arabic diacritics (Harakat)
const str = 'مَرحبًا';
// Use the removeHarakat method to remove the diacritics from the string
const result = arabicStrings.removeHarakat(str);
// Output the result without diacritics
console.log(result); // Outputs: مرحبا
The percentage of Arabic letters in the String
.
arabicString.howArabic('foobar');
//=> 0.0
arabicString.howArabic('فوو bar');
//=> 0.5
arabicString.howArabic('فوبار');
//=> 1.0
The percentage of non-Arabic letters in the String
.
arabicString.howNotArabic('فوبار');
//=> 0.0
arabicString.howNotArabic('فوو bar');
//=> 0.5
arabicString.howNotArabic('foobar');
//=> 1.0
Is the String
Arabic, based on a given threshold
between 0
and 1
. Defaults to 0.79
.
arabicString.isArabic('فوو');
//=> true
arabicString.isArabic('فوو bar baz');
//=> false
Does the String
have any Arabic letter.
arabicString.hasArabic('فوو bar');
//=> ture
arabicString.hasArabic('foo bar');
//=> false
Will return the String
without the diacritics.
arabicString.removeTashkel('مٌحمْد');
//=> 'محمد'
arabicString.removeTashkel('وَتُرى الْكَوَاكِبِ فِي الْمَجَرَّةِ شَرَعَا*** مِثْلُ الظِّباءِ كوارعا فِي جَدْوَلِ');
//=> 'وترى الكواكب في المجرة شرعا *** مثل الظباء كوارعا في جدول'
Will return the String
without the diacritics.
arabicString.removeTatwel('مــرحــبــا');
//=> 'مرحبا'
Will return the String
without the diacritics, and clean characters.
arabicString.sanitize(`أَنا الَّذي نَظَرَ الأَعمى إِلى أَدَبي ... وَأَسمَـعَت كَلِماتي مَن بِهِ صَمَمُ
أَنـامُ مِلءَ جُفوني عَن شَوارِدِهــا ... وَيَسهَرُ الخَلقُ جَرّاها وَيَختَصِمُ
وَجـــاهِلٍ مَدَّهُ في جَهلِهِ ضَحِكي ... حَتّى أَتَتهُ يَدٌ فَرّاسَــــــةٌ وَفَـــــمُ
`);
/*=> `انا الذي نظر الاعمي الي ادبي ... واسمعت كلماتي من به صمم
انام ملء جفوني عن شواردها ... ويسهر الخلق جراها ويختصم
وجاهل مده في جهله ضحكي ... حتي اتته يد فراسه وفم
`
*/
- Original script [https://github.com/ahmads/arabicString]
- Enhancements [https://github.com/ahmads/arabicString/pulls]
- sanitization [https://github.com/ielashi/arabic-nlp]
(The MIT License)