如何使阿拉伯语/波斯语字符对有角度的数字输入有效?

时间:2017-01-22 17:36:44

标签: angularjs validation arabic persian

假设我的申请表中有以下input

<input ng-model="vm.nationalCode" ng-pattern="/^[0-9]{10}$/" required />

我使用/^[0-9]{10}$/强制用户输入10位数。一切正常,但当用户尝试输入类似۰۱۲۳۴۵۶۷۸۹的阿拉伯语/波斯语数字时,验证设置为false。 我知道۰۱۲۳۴۵۶۷۸۹不是一个数字,但是当用户输入并将验证设置为true时,如何将۰۱۲۳۴۵۶۷۸۹更改为0123456789

1 个答案:

答案 0 :(得分:0)

你应该能够将波斯数添加到你的ng模式中,比如/^[۰۱۲۳۴۵۶۷۸۹0-9]{10}$/(不确定波斯数是否是奉献的;如果是,那么你也应该能够{{1}在模式中而不是列出所有数字)。然后,您可以使用以下代码将波斯语数字转换为任何字符串中的阿拉伯数字:

۰-۹

夸大代码的作用。它将输入字符串转换为字符数组,然后使用给定函数映射每个字符,然后将结果数组转换回字符串。转换函数只是在persianNums字符串中查找char的索引,然后从具有相同索引的arabicNums返回char。