JavaScript の整数を中国語の数字の大文字化に変換

高洛峰
リリース: 2016-11-25 11:19:41
オリジナル
1061 人が閲覧しました

数日前、オンラインバンキングを使用して友人に送金しましたが、金額欄にアラビア数字を入力すると、すぐに対応する大文字の漢数字が右側に表示されました。非常に興味深いと思ったので、インターネットで既製のコードを検索し (あまり注意深く検索しませんでしたが)、Java の部分と C# の部分を見つけました。ただし、その実装は非常に煩雑であるか、十分に洗練されていないと感じます。最も重要なことは、機能的な欠陥があるということです。たとえば、100 は中国語で「百元」と訳されます。そこで、自分で小さなプログラムを書いてみることにしました。

私は今、ある考え方を持っています。テキストの処理について考えるとき、頭に浮かぶのは正規表現です。正規表現について考えるとき、Perl を思い浮かべます。そして、それに匹敵する JavaScript を思い浮かべます。 …

以下は私のコードですが、現時点では正の整数のみを処理します。

クリップボードプリントにプレーンコピーを表示しますか?
function digit_uppercase(n) {
var digit = [
0, 1, 2, 3, 4,
5, LU, 柒, 捌, 玖
];元、万、十億]、

var p = ;
var p = for (var j = 0; j 0; j++) {
p = 数字[n %] 10] + ユニット[1][j] + p ;
+ ユニット[0] [i] + s;
}
return s.replace(/(ゼロ.)*ゼロ元/, 元)
.replace(/ (ゼロ.)+/g, ゼロ)
.replace(/^$/, ゼロ元) + 整数
}
function digit_uppercase(n) {
var digit = [
var 単位 = [
[元、万、十億],
[, シ, 百, 仟]
];
var s = ;
for (var i = 0; i 0; i++) {
p ; ][i] + s;
}
return s.replace(/(zero.)*zero 元/, 元)
.replace(/(zero.)+/g, zero)
.replace(/^$/ 、ゼロ元) + 全体;
}
E 関数テスト

Plaincopy を Clipboardprint に表示しますか?
Alert (Digit_uppercase (0)) // ゼロドル全体
orert (digit_upercase (123)) // 1 億元
alert( digit_uppercase(100000001)); // 101 元
alert(digit_uppercase(1000000000)) // 10 億元
alert(1234567890); // 10 億 2345 万元そして6万7819元
alert(digit_uppercase(1001100101)) // 10億1111元
alert (digit_uppercase(110101010)); 100万元 100元 1000元
alert(digit_uppercase(0)) // ゼロ元
alert(digit_uppercase(123)) // 113元
alert(digit_uppercase(1000000)); ; // 十万元
alert(digit_uppercase(100000001)) // 百億元
alert(1000000000) // 10億元
alert(1234567890); / 10 億 2 億 345 万 77 千 890 元
alert(digit_uppercase(1001100101)) // 10 億 110 万 111 元
alert; (digit_uppercase(110101010)); // 110101 元

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート