如何用第一个替换1,用第二个替换2,用第三个替换3等

时间:2013-12-06 14:01:17

标签: javascript jquery ordinals

是否有任何内置的js / jquery函数可以将1转换为第一,第二,第二,第三,第三......等等。

例如:

Num2Str(1); //returns first;
Num2str(2); //returns second;

我不想写一个100个数字的函数。请帮忙。

2 个答案:

答案 0 :(得分:18)

没有内置功能。<​​/ p>

我写了一个最多99个:

var special = ['zeroth','first', 'second', 'third', 'fourth', 'fifth', 'sixth', 'seventh', 'eighth', 'ninth', 'tenth', 'eleventh', 'twelfth', 'thirteenth', 'fourteenth', 'fifteenth', 'sixteenth', 'seventeenth', 'eighteenth', 'nineteenth'];
var deca = ['twent', 'thirt', 'fort', 'fift', 'sixt', 'sevent', 'eight', 'ninet'];

function stringifyNumber(n) {
  if (n < 20) return special[n];
  if (n%10 === 0) return deca[Math.floor(n/10)-2] + 'ieth';
  return deca[Math.floor(n/10)-2] + 'y-' + special[n%10];
}

// TEST LOOP SHOWING RESULTS
for (var i=0; i<100; i++) console.log(stringifyNumber(i));

DEMO:http://jsbin.com/AqetiNOt/1/edit

答案 1 :(得分:2)

你可以创建一个数字生成器:

您需要创建一种万无一失的方法,将单个数字转换为字符串。

  

1234 - &gt; 1(一)* 10 ^ 3(千)+2(二)* 10 ^ 2(百)+3(三) 10(十)+4(四)(之一)
      ==&GT;一千零一百四十四。

     

123456 - &gt;一百二十三,五十四,五十六

如果您想知道符号:我试图在您需要制定的单一决策步骤中将其拆分

建筑规则每三位重复一次。其余的由你决定。

哦,在我忘记之前:th规则只有“3”例外。一,二,三。