首页 > 解决方案 > 验证多种语言的长度

问题描述

我正在开发一个多语言应用程序,它允许用户输入多种语言(例如,英语、中文和韩语)

对于注册用户,我具有validate_length验证用户名和姓的长度的功能。

但是,我遇到的问题是我不希望计算英文字母和中文字母的结果相同。例如,如果我计算“大卫”和“器防雷器”的长度。即使汉字占用更多空间,它们都返回 5。

Ecto 目前支持按codepointsand计算长度,graphemes但它们中的任何一个都可以满足我的需要。

我怎样才能做到这一点?甚至可以计算字母并验证它需要多少“字节”?

标签: elixirectochangeset

解决方案


您可以使用Kernel.byte_size/1

iex(13)> byte_size("David")
5
iex(14)> byte_size("器防雷器防")
15

推荐阅读