detectTextDirection function Text
Returns the direction of the first strongly directional character in text.
Uses the first L, R or AL character outside isolates. Weak and neutral
characters are skipped. When text has no strong character within
mreDirectionScanLimit code units, fallback is returned.
final arabic = detectTextDirection('مرحبا بالعالم'); // rtl
final english = detectTextDirection('Hello'); // ltr
final mixed = detectTextDirection('123 مرحبا'); // rtl, digits are skipped
final symbols = detectTextDirection('(#1) مرحبا'); // rtl, symbols are skipped
final none = detectTextDirection('12345', fallback: TextDirection.rtl); // rtl
See also:
- detectStrongTextDirection, which returns null instead of a fallback.
- MRETextDirection, the same check as getters on String.
Implementation
TextDirection detectTextDirection(
String text, {
TextDirection fallback = TextDirection.ltr,
}) {
return detectStrongTextDirection(text) ?? fallback;
}