将PHP代码转换为Javascript,将数字读取为句子


Convert PHP code to Javascript to read numbers into sentences

我想将我的PHP代码转换为JavaScript。该代码的目的是将数字读入句子。问题是这个句子不会显示在输入文本中。这是代码:

JavaScript

function pembilang(angka) {
    var bilangan =[
            '',
            'SATU',
            'DUA',
            'TIGA',
            'EMPAT',
            'LIMA',
            'ENAM',
            'TUJUH',
            'DELAPAN',
            'SEMBILAN',
            'SEPULUH',
            'SEBELAS'
    ];
    if (angka < 12) {
        $('#NILAI_HURUF').val(bilangan[angka]);
    } else if (angka < 20) {
        $('#NILAI_HURUF').val(bilangan[angka - 10] + ' BELAS');
    } else if (angka < 100) {
        hasil_bagi == (angka / 10);
        hasil_mod == angka % 10;
        $('#NILAI_HURUF').val(trim(sprintf('%s PULUH %s', bilangan[hasil_bagi], bilangan[hasil_mod])));
    } else if (angka < 200) {
        $('#NILAI_HURUF').val('SERATUS %s', terbilang(angka - 100));
    } else if (angka < 1000) {
        hasil_bagi == (angka / 100);
        hasil_mod == angka % 100;
        $('#NILAI_HURUF').val(trim(sprintf('%s RATUS %s', $bilangan[hasil_bagi], terbilang(hasil_mod))));
    } else if (angka < 2000) {
        $('#NILAI_HURUF').val(trim(sprintf('SERIBU %s', terbilang(angka - 1000))));
    } else if (angka < 1000000) {
        hasil_bagi == (angka / 1000);
        hasil_mod == angka % 1000;
        $('#NILAI_HURUF').val(sprintf('%s RIBU %s', terbilang(hasil_bagi), terbilang(hasil_mod)));
    } else if (angka < 1000000000) {
        hasil_bagi == (angka / 1000000);
        hasil_mod == angka % 1000000;
        $('#NILAI_HURUF').val(trim(sprintf('%s JUTA %s', terbilang(hasil_bagi), terbilang(hasil_mod))));
    } else if (angka < 1000000000000) {
        hasil_bagi == (angka / 1000000000);
        hasil_mod == fmod(angka, 1000000000);
        $('#NILAI_HURUF').val(trim(sprintf('%s MILYAR %s', terbilang(hasil_bagi), terbilang(hasil_mod))));
    } else if (angka < 1000000000000000) {
        hasil_bagi == angka / 1000000000000;
        hasil_mod == fmod(angka, 1000000000000);
        $('#NILAI_HURUF').val(trim(sprintf('%s TRILIYUN %s', terbilang(hasil_bagi), terbilang(hasil_mod))));
    } else {
        alert('Too many digits.');
    }
}

然后这就是我输入数字的地方:

html

<input onkeypress="return isNumberKey(event);" onChange="pembilang(this.value);" class="form-control" placeholder="Masukan nilai angka..." name="NILAI_ANGKA_AKHIR" type="number" required>

这就是句子必须显示的地方:

html

<input id="NILAI_HURUF" value="" class="form-control disabled" placeholder="Masukan no induk..." name="NILAI_HURUF" type="text" required>

好吧,我自己解决了。

我只是在JavaScript函数中添加了一个这样的变量:

angka = angka;

解决方案是从phpjs.org/functions/ssprintf实现/添加JavaScript模块

JavaScript

function pembilang(angka) {
    var angka = angka;
    var bilangan =[
            '',
            'SATU',
            'DUA',
            'TIGA',
            'EMPAT',
            'LIMA',
            'ENAM',
            'TUJUH',
            'DELAPAN',
            'SEMBILAN',
            'SEPULUH',
            'SEBELAS'
    ];
    if (angka < 12) {
        $('#NILAI_HURUF').val(bilangan[angka]);
    } else if (angka < 20) {
        $('#NILAI_HURUF').val(bilangan[angka - 10] + ' BELAS');
    } else if (angka < 100) {
        hasil_bagi = Math.floor(angka / 10);
        hasil_mod = angka % 10;
        //   example 4: sprintf("%s", 123456789012345);
        var x = sprintf("%s PULUH %s", bilangan[hasil_bagi], bilangan[hasil_mod]);
        $('#NILAI_HURUF').val(x);
    } else if (angka < 101) {
        var x = sprintf("SERATUS %s", bilangan[angka - 100]);
        $('#NILAI_HURUF').val(x);
    }else {
        alert('Maksimal nilai 100.');
    }
}