ホームページ  >  記事  >  ウェブフロントエンド  >  10万/10億システムを使用してインドの数字を単語に変換するにはどうすればよいですか?

10万/10億システムを使用してインドの数字を単語に変換するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-06 12:19:02581ブラウズ

How can I convert Indian numbers to words using the lakh/crore system?

Lakh/Crore システムを使用してインドの数字を単語に変換する

インドの数字を扱う場合、それらを対応する単語に変換する必要がありますフォーム。これを実現するにはいくつかのアプローチがありますが、提供されているコードは過度に複雑に見えるかもしれません。より単純な代替案を検討してみましょう。

次の関数は、単一の正規表現を使用して、数値を単語形式に効率的に変換します。

<code class="javascript">var a = ['','one ','two ','three ','four ', 'five ','six ','seven ','eight ','nine ','ten ','eleven ','twelve ','thirteen ','fourteen ','fifteen ','sixteen ','seventeen ','eighteen ','nineteen '];
var b = ['', '', 'twenty','thirty','forty','fifty', 'sixty','seventy','eighty','ninety'];

function inWords (num) {
    if ((num = num.toString()).length > 9) return 'overflow';
    n = ('000000000' + num).substr(-9).match(/^(\d{2})(\d{2})(\d{2})(\d{1})(\d{2})$/);
    if (!n) return; var str = '';
    str += (n[1] != 0) ? (a[Number(n[1])] || b[n[1][0]] + ' ' + a[n[1][1]]) + 'crore ' : '';
    str += (n[2] != 0) ? (a[Number(n[2])] || b[n[2][0]] + ' ' + a[n[2][1]]) + 'lakh ' : '';
    str += (n[3] != 0) ? (a[Number(n[3])] || b[n[3][0]] + ' ' + a[n[3][1]]) + 'thousand ' : '';
    str += (n[4] != 0) ? (a[Number(n[4])] || b[n[4][0]] + ' ' + a[n[4][1]]) + 'hundred ' : '';
    str += (n[5] != 0) ? ((str != '') ? 'and ' : '') + (a[Number(n[5])] || b[n[5][0]] + ' ' + a[n[5][1]]) + 'only ' : '';
    return str;
}</code>

このコードは、正規表現を利用して、次のようなさまざまなシナリオを処理します。指定された数値の何千万、何十万、何千、何百かを決定します。次に、これらの値に基づいて出力が作成されます。

使用法と例:

コードの使用:

<code class="html"><span id="words"></span>
<input id="number" type="text"></code>

数値を入力するとき入力フィールドに入力してキーを放すと、inWords() 関数が実行され、数値が単語形式に変換され、単語スパンで表示されます。

このコードは、コンパクトでわかりやすいソリューションを提供します。これは、インドの数字を 10 億/100 万単位の単語に変換するというニーズに対応します。

以上が10万/10億システムを使用してインドの数字を単語に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。