大于或小于检查古吉拉特语的数字

时间:2013-12-17 09:18:40

标签: java javascript unicode numbers

我有一个表单,用户填写和古吉拉特语数字编号(古吉拉特语),例如。 ૧૪(即14)。我想检查输入的古吉拉特语编号是否小于 50 (或૫૦)。

我如何在java和javascript中进行此检查?

4 个答案:

答案 0 :(得分:4)

您可以将其转换为小数并比较结果。

function gujaratiToDecimal (n) {
    return n.split ("").reduce (function (sum,chr,index,array) {
         var num = chr.charCodeAt (0) - 2790; //Subtract 2790 to get the decimal value for the current char
         num *= Math.pow (10, array.length - index - 1); //Multiply it with a power of ten, based on its position
         return sum + num //Sum it up
    },0)
}
gujaratiToDecimal ("૫૦"); //50
gujaratiToDecimal ("૧૪") < gujaratiToDecimal ("૫૦") //true

这是JSFiddle

我想你可以很容易地将它翻译成Java。 - 刚刚安装了IDE,这是一个Java版本

 public int gujarati (String str) {
     int len = str.length ();
     int sum = 0;
     for (int i=0; i < len; i++) {
         sum += (str.charAt (i) - 2790 ) * Math.pow (10, len - i - 1);
     }
     return sum;
 }

答案 1 :(得分:1)

您可以获取输入字符的单代码值。您可以使用0-9的值映射这些值(例如,1映射到1)。基于这些,您可以将输入古吉拉特语的数字转换为英语中的数字。

答案 2 :(得分:1)

我认为这适用于java

public static int convertGujratiToEnglishNumber(String number) {
        int len = number.length();
        StringBuilder englishNumber = new StringBuilder();
        for (int i = 0; i < len; i++) {
            char c = number.charAt(i);

            switch (c) {
                case '१' :
                    englishNumber.append(1);
                    break;
                case '२' :
                    englishNumber.append(2);
                    break;

                case '३' :
                    englishNumber.append(3);
                    break;
                           ....
                           ..... until 9 or (९)
                default :
                    break;
            }
        }
        return Integer.parseInt(englishNumber.toString());
    }

答案 3 :(得分:0)

您可以简单地使用java脚本函数来填充与“gujrati”文本框相同的隐藏文本值。因此,如果我是一个用户并输入14,则隐藏文本框应该填充14,然后您可以将其与50进行比较。我的快速想法可以有更好的意见。