[Extension] Improve isOnlyEmoji digitRecognizer function
Signed-off-by: Sahil Kumar <[email protected]>
This commit is contained in:
+10
-7
@@ -3,6 +3,9 @@ import 'package:characters/characters.dart';
|
|||||||
|
|
||||||
final _emojis = Emoji.all();
|
final _emojis = Emoji.all();
|
||||||
|
|
||||||
|
//https://pub.dev/documentation/quiver/latest/quiver.strings/isDigit.html
|
||||||
|
bool isDigit(int rune) => rune ^ 0x30 <= 9;
|
||||||
|
|
||||||
extension StringExtension on String {
|
extension StringExtension on String {
|
||||||
String capitalize() {
|
String capitalize() {
|
||||||
return "${this[0].toUpperCase()}${this.substring(1)}";
|
return "${this[0].toUpperCase()}${this.substring(1)}";
|
||||||
@@ -15,14 +18,14 @@ extension StringExtension on String {
|
|||||||
final characters = this.trim().characters;
|
final characters = this.trim().characters;
|
||||||
if (characters.isEmpty) return false;
|
if (characters.isEmpty) return false;
|
||||||
if (characters.length > 3) return false;
|
if (characters.length > 3) return false;
|
||||||
final regExp = RegExp('[0-9]');
|
final containsDigits = characters.any((c) => isDigit(c.runes.first));
|
||||||
|
if (containsDigits) return false;
|
||||||
return characters.every((c) {
|
return characters.every((c) {
|
||||||
return !regExp.hasMatch(c) &&
|
return _emojis.firstWhere(
|
||||||
_emojis.firstWhere(
|
(Emoji emoji) => emoji.char.contains(c),
|
||||||
(Emoji emoji) => emoji.char.contains(c),
|
orElse: () => null,
|
||||||
orElse: () => null,
|
) !=
|
||||||
) !=
|
null;
|
||||||
null;
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user