From 006b3e21c3d8188801bf9e680f848cfb6d2302ec Mon Sep 17 00:00:00 2001 From: Sahil Kumar Date: Fri, 15 Jan 2021 16:06:36 +0530 Subject: [PATCH] [Extension] Improve isOnlyEmoji digitRecognizer function Signed-off-by: Sahil Kumar --- lib/src/extension.dart | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/src/extension.dart b/lib/src/extension.dart index 7e572db5..5a26d515 100644 --- a/lib/src/extension.dart +++ b/lib/src/extension.dart @@ -3,6 +3,9 @@ import 'package:characters/characters.dart'; 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 { String capitalize() { return "${this[0].toUpperCase()}${this.substring(1)}"; @@ -15,14 +18,14 @@ extension StringExtension on String { final characters = this.trim().characters; if (characters.isEmpty) 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 !regExp.hasMatch(c) && - _emojis.firstWhere( - (Emoji emoji) => emoji.char.contains(c), - orElse: () => null, - ) != - null; + return _emojis.firstWhere( + (Emoji emoji) => emoji.char.contains(c), + orElse: () => null, + ) != + null; }); } }