将st,nd,rd和th(序号)后缀添加到数字中 [英] Add st, nd, rd and th (ordinal) suffix to a number

查看:404
本文介绍了将st,nd,rd和th(序号)后缀添加到数字中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想基于当天动态生成一串文本。因此,例如,如果是第1天,那么我希望我的代码生成=其< dynamic> 1 *<动态字符串> st < / dynamic string> *< / dynamic>。

I would like to dynamically generate a string of text based on a current day. So, for example, if it is day 1 then I would like my code to generate = "Its the <dynamic>1*<dynamic string>st</dynamic string>*</dynamic>".

共有12天,所以我做了以下几点:

There are 12 days in total so I have done the following:


  1. 我已经设置了一个for循环,循环播放了12天。

  1. I've set up a for loop which loops through the 12 days.

在我的html中,我给了我的元素一个用于定位它的唯一ID,请参见下文:

In my html I have given my element a unique id with which to target it, see below:

<h1 id="dynamicTitle" class="CustomFont leftHeading shadow">On The <span></span> <em>of rest of generic text</em></h1>


  • 然后,在我的for循环中,我有以下代码:

  • Then, inside my for loop I have the following code:

    $("#dynamicTitle span").html(i);
    var day = i;
    if (day == 1) {
        day = i + "st";
    } else if (day == 2) {
        day = i + "nd"
    } else if (day == 3) {
        day = i + "rd"
    }
    


  • 更新

    这是所要求的整个for循环:

    This is the entire for loop as requested:

    $(document).ready(function () {
        for (i = 1; i <= 12; i++) {
            var classy = "";
            if (daysTilDate(i + 19) > 0) {
                classy = "future";
                $("#Day" + i).addClass(classy);
                $("#mainHeading").html("");
                $("#title").html("");
                $("#description").html("");
            } else if (daysTilDate(i + 19) < 0) {
                classy = "past";
                $("#Day" + i).addClass(classy);
                $("#title").html("");
                $("#description").html("");
                $("#mainHeading").html("");
                $(".cta").css('display', 'none');
                $("#Day" + i + " .prizeLink").attr("href", "" + i + ".html");
            } else {
                classy = "current";
                $("#Day" + i).addClass(classy);
                $("#title").html(headings[i - 1]);
                $("#description").html(descriptions[i - 1]);
                $(".cta").css('display', 'block');
                $("#dynamicImage").attr("src", ".." + i + ".jpg");
                $("#mainHeading").html("");
                $(".claimPrize").attr("href", "" + i + ".html");
                $("#dynamicTitle span").html(i);
                var day = i;
                if (day == 1) {
                    day = i + "st";
                } else if (day == 2) {
                    day = i + "nd"
                } else if (day == 3) {
                    day = i + "rd"
                } else if (day) {
                }
            }
        }
    


    推荐答案

    规则如下如下:



    • st用于以1结尾的数字(例如1st,发音为first)

    • nd用于以2结尾的数字(例如92,发音为九十秒)

    • rd用于以3结尾的数字(例如33rd,发音为30-第三)

    • 作为上述规则的一个例外,所有以11,12或13结尾的青少年号码都使用-th(例如11号,发音第11号,第112号,
      发音为百[和]十二)

    • th用于所有其他数字(例如,第9,发音为第9)。

    • st is used with numbers ending in 1 (e.g. 1st, pronounced first)
    • nd is used with numbers ending in 2 (e.g. 92nd, pronounced ninety-second)
    • rd is used with numbers ending in 3 (e.g. 33rd, pronounced thirty-third)
    • As an exception to the above rules, all the "teen" numbers ending with 11, 12 or 13 use -th (e.g. 11th, pronounced eleventh, 112th, pronounced one hundred [and] twelfth)
    • th is used for all other numbers (e.g. 9th, pronounced ninth).

    以下JavaScript代码(于2014年6月重写)实现了这一目标:

    The following JavaScript code (rewritten in Jun '14) accomplishes this:

    function ordinal_suffix_of(i) {
        var j = i % 10,
            k = i % 100;
        if (j == 1 && k != 11) {
            return i + "st";
        }
        if (j == 2 && k != 12) {
            return i + "nd";
        }
        if (j == 3 && k != 13) {
            return i + "rd";
        }
        return i + "th";
    }
    

    0-115之间数字的示例输出:

    Sample output for numbers between 0-115:

      0  0th
      1  1st
      2  2nd
      3  3rd
      4  4th
      5  5th
      6  6th
      7  7th
      8  8th
      9  9th
     10  10th
     11  11th
     12  12th
     13  13th
     14  14th
     15  15th
     16  16th
     17  17th
     18  18th
     19  19th
     20  20th
     21  21st
     22  22nd
     23  23rd
     24  24th
     25  25th
     26  26th
     27  27th
     28  28th
     29  29th
     30  30th
     31  31st
     32  32nd
     33  33rd
     34  34th
     35  35th
     36  36th
     37  37th
     38  38th
     39  39th
     40  40th
     41  41st
     42  42nd
     43  43rd
     44  44th
     45  45th
     46  46th
     47  47th
     48  48th
     49  49th
     50  50th
     51  51st
     52  52nd
     53  53rd
     54  54th
     55  55th
     56  56th
     57  57th
     58  58th
     59  59th
     60  60th
     61  61st
     62  62nd
     63  63rd
     64  64th
     65  65th
     66  66th
     67  67th
     68  68th
     69  69th
     70  70th
     71  71st
     72  72nd
     73  73rd
     74  74th
     75  75th
     76  76th
     77  77th
     78  78th
     79  79th
     80  80th
     81  81st
     82  82nd
     83  83rd
     84  84th
     85  85th
     86  86th
     87  87th
     88  88th
     89  89th
     90  90th
     91  91st
     92  92nd
     93  93rd
     94  94th
     95  95th
     96  96th
     97  97th
     98  98th
     99  99th
    100  100th
    101  101st
    102  102nd
    103  103rd
    104  104th
    105  105th
    106  106th
    107  107th
    108  108th
    109  109th
    110  110th
    111  111th
    112  112th
    113  113th
    114  114th
    115  115th
    

    这篇关于将st,nd,rd和th(序号)后缀添加到数字中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    相关文章
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆