您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用JavaScript将数字转换成单词

使用JavaScript将数字转换成单词

:看起来这比我想象的要有用。我刚刚在npm上发布了此内容https://www.npmjs.com/package/num- words

这是一个较短的代码一个RegEx,没有循环。在南亚编号系统中根据需要进行转换

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;

}



document.getElementById('number').onkeyup = function () {

    document.getElementById('words').innerHTML = inWords(document.getElementById('number').value);

};


<span id="words"></span>

<input id="number" type="text" />

唯一的限制是,您最多可以转换9位数字,我认为在大多数情况下,这已经足够了。

javascript 2022/1/1 18:15:54 有504人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶