removeDiacritics method

String removeDiacritics()

دالة لإزالة التشكيل (الحركات) من النص العربي

Implementation

String removeDiacritics() {
  if (isEmpty) return this;

  // قائمة التشكيل (الحركات) في العربية
  final diacritics = [
    '\u064B', // تنوين فتح
    '\u064C', // تنوين ضم
    '\u064D', // تنوين كسر
    '\u064E', // فتحة
    '\u064F', // ضمة
    '\u0650', // كسرة
    '\u0651', // شدة
    '\u0652', // سكون
    '\u0653', // مد
    '\u0654', // همزة فوق
    '\u0655', // همزة تحت
  ];

  // إزالة كل الحركات
  var result = this;
  for (var d in diacritics) {
    result = result.replaceAll(d, '');
  }

  // توحيد المسافات
  result = result.replaceAll(RegExp(r'\s+'), ' ').trim();

  // تحويل إلى أحرف صغيرة (اختياري)
  result = result.toLowerCase();

  return result;
}