Flutter Dart 判断输入内容包含中英文md

7 min read

String.codeUnits 可以返回字符串中每个字符的 Unicode 编码单元,而 String.runes 可以返回字符串中每个 Unicode 码点的迭代器。因此,可以通过判断字符串中是否包含大于 0xFFFF 的 Unicode 码点来判断该字符串是否包含中文字符。

例如,以下代码可以用来判断输入的字符串是否包含中文字符:

bool isChinese(String input) {
  // 检查字符串中是否包含大于 0xFFFF 的 Unicode 码点
  return input.runes.any((rune) => rune > 0xFFFF);
}

在这段代码中,isChinese 函数首先使用 String.runes 返回输入字符串的 Unicode 码点的迭代器,然后使用 Iterable.any 检查迭代器中是否存在大于 0xFFFF 的 Unicode 码点。如果存在,则返回 true,表示输入字符串包含中文字符。如果不存在,则返回 false,表示输入字符串不包含中文字符。

另外,也可以使用 String.contains 方法来检查字符串中是否包含中文字符,例如:

bool isChinese(String input) {
  // 检查字符串中是否包含中文字符
  return input.contains(RegExp(r'[\u4e00-\u9fa5]'));
}d