AngularJS Forms和I18N支持 - 不读日文字符

时间:2014-05-13 22:00:41

标签: forms angularjs validation internationalization

关于角形式和日文字符的快速问题。我使用的是Angular 1.2.17,以及Mac OSX上的现代Chrome网络浏览器(最新版)。

我正在为日本市场撰写AngularJS应用程序。一切都很好,在HTML页面等上显示假名等。在Web服务器或数据库等方面没有问题,整个应用程序都支持UTF8。

然而,对于AngularJS表格,它不会读取汉字/平假名/片假名,除非单词或句子以拉丁字符开头。除非前缀为拉丁字符,否则Angular $ scope似乎无法区分JP字符已被输入的事实。

示例:

こにちわ在键入输入字段时不会注册,因此表单验证失败,因为它会认为必填字段为空。

鉴于:

adsfこにちわ确实注册,表格可以成功提交。从头到尾,JP字符处理正确,并正确存储到DB中。所以Angular / JS正在解析UTF8文本。当只提供JP字符时,问题可能与Angular如何绑定到数据($ scope)有关。默认情况下,它无法正确处理。

有没有人知道任何HTML或Angular配置等 - 需要Angular模块或参数,元标记等,这将强制表格行为正常。尚未测试过,但我非常肯定这个问题不是JP字符所特有的 - 很可能任何使用非拉丁字母的人都会遇到相同的行为。

这里必须遗漏一些明显的东西。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

好的,很晚才更新这个问题 - 实际上在询问后很快就解决了。

这结果是一个时间问题。道歉。

但如果有人遇到类似的问题,那么请检查表单字段中的任何REGEX声明。例如,ng-pattern =“/ ^ [a-zA-Z] /”

是的,这将按照它说的做,并排除汉字。令人惊讶的是,它不会在表单字段上放置有用的验证错误,因此从UI角度看,外语字符似乎没有注册。