首先,将字符串归一化,以去除变音符号。
void main() {
String t2 = 'بِسْمِ اللَِّهِ الرَّحْمَٰنِ الرَّحِيمِ محمد';
String s2 = 'الرَّحِيمِ محمد';
print(t2);
String nt2 = normalise(t2);
print(nt2);
print(t2.codeUnits);
print(nt2.codeUnits);
print(s2);
String ns2 = normalise(s2);
print(ns2);
print(s2.codeUnits);
print(ns2.codeUnits);
print(nt2.contains(ns2));
}
String normalise(String input) => input
.replaceAll('\u0610', '')
.replaceAll('\u0611', '')
.replaceAll('\u0612', '')
.replaceAll('\u0613', '')
.replaceAll('\u0614', '')
.replaceAll('\u0615', '')
.replaceAll(
'\u0616', '')
.replaceAll('\u0617', '')
.replaceAll('\u0618', '')
.replaceAll('\u0619', '')
.replaceAll('\u061A', '')
.replaceAll('\u06D6',
'')
.replaceAll('\u06D7',
'')
.replaceAll('\u06D8', '')
.replaceAll('\u06D9', '')
.replaceAll('\u06DA', '')
.replaceAll('\u06DB', '')
.replaceAll('\u06DC', '')
.replaceAll('\u06DD', '')
.replaceAll('\u06DE', '')
.replaceAll('\u06DF', '')
.replaceAll('\u06E0', '')
.replaceAll('\u06E1', '')
.replaceAll('\u06E2', '')
.replaceAll('\u06E3', '')
.replaceAll('\u06E4', '')
.replaceAll('\u06E5', '')
.replaceAll('\u06E6', '')
.replaceAll('\u06E7', '')
.replaceAll('\u06E8', '')
.replaceAll('\u06E9', '')
.replaceAll('\u06EA', '')
.replaceAll('\u06EB', '')
.replaceAll('\u06EC', '')
.replaceAll('\u06ED', '')
.replaceAll('\u0640', '')
.replaceAll('\u064B', '')
.replaceAll('\u064C', '')
.replaceAll('\u064D', '')
.replaceAll('\u064E', '')
.replaceAll('\u064F', '')
.replaceAll('\u0650', '')
.replaceAll('\u0651', '')
.replaceAll('\u0652', '')
.replaceAll('\u0653', '')
.replaceAll('\u0654', '')
.replaceAll('\u0655', '')
.replaceAll('\u0656', '')
.replaceAll('\u0657', '')
.replaceAll('\u0658', '')
.replaceAll('\u0659', '')
.replaceAll('\u065A', '')
.replaceAll('\u065B', '')
.replaceAll('\u065C', '')
.replaceAll('\u065D', '')
.replaceAll('\u065E', '')
.replaceAll('\u065F', '')
.replaceAll('\u0670', '')
.replaceAll('\u0624', '\u0648')
.replaceAll('\u0629', '\u0647')
.replaceAll('\u064A', '\u0649')
.replaceAll('\u0626', '\u0649')
.replaceAll('\u0622', '\u0627')
.replaceAll('\u0623', '\u0627')
.replaceAll('\u0625', '\u0627');