javascript - 半 Angular 字符和全 Angular 字符的用途是什么?

标签 javascript unicode internationalization

半 Angular 字符和全 Angular 字符的用途是什么,它们之间有什么区别?

我很好奇,因为 validator.js (一个开源字符串验证库)有几个函数可以评估 form给定输入的:

isFullWidth(str)
isHalfWidth(str)
isVariableWidth(str)

为什么有人想要评估某些文本的形式?

在内部,该库使用此正则表达式模式来确定输入是否为全 Angular :

/[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/

以及确定输入是否为半 Angular 的模式:

 /[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/

这些代码点范围有什么意义?

最佳答案

它们用于亚洲语言。中文和其他基于汉字的语言具有形成非常网格状文本 block 的特殊属性,因为汉字/汉字是正方形的:

漢字,在中國亦称中文字、中国字、方塊字,是漢字文化圈廣泛使用的一種文字,也是世界上唯一仍被廣泛使用的高度發展的語素文字。廣義的漢字指從甲骨文、大篆、金文、籀文、小篆,至隶书、草书、楷书(以及衍生的行书)等的文字,狹義指以正楷作為標準寫法的漢字,也是今日普遍使用的現代漢字。漢字在古文中只稱「字」,少數民族為區別而稱「漢字」,指漢人使用的文字。

您会注意到,即使是标点符号也会保留字符的列状布局。散布一些常规的半 Angular 或动态宽度拉丁文会破坏它:

漢字,在中國亦称中文字、中国字、方塊字,是漢字文化圈廣泛使用的一種文字,也是世界上唯一仍被廣泛使用的高度發展的語素文字。Here's some irregular latin. 廣義的漢字指從甲骨文、大篆、金文、籀文、小篆,至隶书、草书 (and here's some more)、楷书(以及衍生的行书)等的文字 (and some more),狹義指以正楷作為標準寫法的漢字,也是今日普遍使用的現代漢字。漢字在古文中只稱「字」,少數民族為區別而稱「漢字」,指漢人使用的文字。

全 Angular 拉丁字符旨在通过适合汉字大小的正方形来保留 block 布局:

漢字,在中國亦称中文字、中国字、方塊字,是漢字文化圈廣泛使用的一種文字,也是世界上唯一仍被廣泛使用的高度發展的語素文字。Here's some regular latin.廣義的漢字指從甲骨文、大篆、金文、籀文、小篆,至隶书、草书、楷书(以及衍生的行书)等的文字,狹義指以正楷作為標準寫法的漢字,也是今日普遍使用的現代漢字。漢字在古文中只稱「字」,少數民族為區別而稱「漢字」,指漢人使用的文字。

本质上,它只是在这种情况下看起来和读起来更好。

关于javascript - 半 Angular 字符和全 Angular 字符的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28120607/

相关文章:

javascript - 过滤方法 - Angular.JS

javascript - 使用 VPN 时可以使用 jquery CDN 吗? - 使用 TamperMonkey

python - 删除字符串中连续字符重复数据的最快方法 - Python

类似于 Rosetta 的 PHP 翻译前端?

javascript - Angularjs 与 css3 动画

javascript - 为什么我的背景图片这么大而且拉长了?

ios - NSString 中的 Unicode 字符

php - POST 变量和波斯字符

ruby-on-rails - 我应该如何以 DRY 和数据库有效的方式存储本地化值 - Ruby on Rails/i18n

c# - 如何检测 KeyDown 事件中的 NumberDecimalSeparator (C#)