JavaScript で数字に st、nd、rd、th (序数) サフィックスを追加する 3 つの方法
JavaScript で数字に st、nd、rd、th (序数) サフィックスを追加する方法
方法 1: 関数を使用する
この方法は、序数サフィックスを追加する関数を定義することで、コードを簡潔に保つことができます。
function addOrdinalSuffix(number) {
const suffixes = ["st", "nd", "rd", "th"];
const ones = number % 10;
const tens = Math.floor(number / 10) % 10;
if (tens === 1) {
return number + "th";
} else if (ones === 1) {
return number + "st";
} else if (ones === 2) {
return number + "nd";
} else if (ones === 3) {
return number + "rd";
} else {
return number + "th";
}
}
console.log(addOrdinalSuffix(1)); // 出力: 1st
console.log(addOrdinalSuffix(2)); // 出力: 2nd
console.log(addOrdinalSuffix(11)); // 出力: 11th
console.log(addOrdinalSuffix(111)); // 出力: 111th
この関数は、以下のロジックに基づいています。
- 数字の最後の桁 (ones) と、最後の 2 桁の最初の桁 (tens) を取得します。
tens
が 1 の場合は、"th" を返します。ones
が 1、2、3 の場合は、それぞれ "st"、"nd"、"rd" を返します。- 上記以外の場合は、"th" を返します。
方法 2: 条件分岐を使用する
この方法は、関数を使用せずに、条件分岐を使用して序数サフィックスを追加することができます。
function addOrdinalSuffix(number) {
const ones = number % 10;
const tens = Math.floor(number / 10) % 10;
if (number === 11 || number === 111 || number === 1001 || number === 1011) {
return number + "th";
} else if (ones === 1) {
return number + "st";
} else if (ones === 2) {
return number + "nd";
} else if (ones === 3) {
return number + "rd";
} else {
return number + "th";
}
}
console.log(addOrdinalSuffix(1)); // 出力: 1st
console.log(addOrdinalSuffix(2)); // 出力: 2nd
console.log(addOrdinalSuffix(11)); // 出力: 11th
console.log(addOrdinalSuffix(111)); // 出力: 111th
この方法は、条件分岐を使用して、さまざまなケースを個別に処理しています。
jQuery を使用する
jQuery を使用して、HTML 要素内の数値に序数サフィックスを動的に追加することもできます。
<p id="number">1</p>
<script>
$(document).ready(function() {
const number = parseInt($("#number").text());
const ordinalSuffix = addOrdinalSuffix(number);
$("#number").text(number + ordinalSuffix);
});
function addOrdinalSuffix(number) {
// ... (上記と同じ関数)
}
</script>
この例では、#number
という ID を持つ要素内の数値を取得し、addOrdinalSuffix
関数を使用して序数サフィックスを追加しています。その後、序数サフィックス付きの数値を要素に設定します。
これらの方法は、JavaScript で数字に st、nd、rd、th (序数) サフィックスを追加するための 2 つの例です。状況に応じて、最適な方法を選択してください。
- 上記のコードは、1 から 100 までの数字を想定しています。100 を超える数字には、ロジックを調整する必要があります。
- 序数サフィックスの表記は、地域によって異なる場合があります。上記のコードは、英語の表記に基づいています。
- [JavaScript で日付をフォーマ
function addOrdinalSuffix(number) {
const suffixes = ["st", "nd", "rd", "th"];
const ones = number % 10;
const tens = Math.floor(number / 10) % 10;
if (tens === 1) {
return number + "th";
} else if (ones === 1) {
return number + "st";
} else if (ones === 2) {
return number + "nd";
} else if (ones === 3) {
return number + "rd";
} else {
return number + "th";
}
}
console.log(addOrdinalSuffix(1)); // 出力: 1st
console.log(addOrdinalSuffix(2)); // 出力: 2nd
console.log(addOrdinalSuffix(11)); // 出力: 11th
console.log(addOrdinalSuffix(111)); // 出力: 111th
説明:
function addOrdinalSuffix(number) {
const ones = number % 10;
const tens = Math.floor(number / 10) % 10;
if (number === 11 || number === 111 || number === 1001 || number === 1011) {
return number + "th";
} else if (ones === 1) {
return number + "st";
} else if (ones === 2) {
return number + "nd";
} else if (ones === 3) {
return number + "rd";
} else {
return number + "th";
}
}
console.log(addOrdinalSuffix(1)); // 出力: 1st
console.log(addOrdinalSuffix(2)); // 出力: 2nd
console.log(addOrdinalSuffix(11)); // 出力: 11th
console.log(addOrdinalSuffix(111)); // 出力: 111th
<p id="number">1</p>
<script>
$(document).ready(function() {
const number = parseInt($("#number").text());
const ordinalSuffix = addOrdinalSuffix(number);
$("#number").text(number + ordinalSuffix);
});
function addOrdinalSuffix(number) {
// ... (上記と同じ関数)
}
</script>
- 序数サフィックスの表記は、地域によって異なる場合があります。ご自身のニーズに合わせて、表記を変更してください。
この方法は、文字列操作を使用して、数字の最後の桁と、場合によっては 2 桁目の最初の桁に応じて、序数サフィックスを追加します。
function addOrdinalSuffix(number) {
const ones = number % 10;
const tens = Math.floor(number / 10) % 10;
const strNumber = number.toString();
if (tens === 1) {
return strNumber + "th";
} else if (ones === 1) {
return strNumber + "st";
} else if (ones === 2) {
return strNumber + "nd";
} else if (ones === 3) {
return strNumber + "rd";
} else {
return strNumber + "th";
}
}
console.log(addOrdinalSuffix(1)); // 出力: 1st
console.log(addOrdinalSuffix(2)); // 出力: 2nd
console.log(addOrdinalSuffix(11)); // 出力: 11th
console.log(addOrdinalSuffix(111)); // 出力: 111th
switch 文を使用する
この方法は、switch 文を使用して、数字の値に応じて序数サフィックスを判断します。
function addOrdinalSuffix(number) {
switch (number % 10) {
case 1:
return number + "st";
case 2:
return number + "nd";
case 3:
return number + "rd";
default:
return number + "th";
}
}
console.log(addOrdinalSuffix(1)); // 出力: 1st
console.log(addOrdinalSuffix(2)); // 出力: 2nd
console.log(addOrdinalSuffix(11)); // 出力: 11th
console.log(addOrdinalSuffix(111)); // 出力: 111th
正規表現を使用する
この方法は、正規表現を使用して、数字の末尾に序数サフィックスを追加します。
function addOrdinalSuffix(number) {
const regex = /\d+$/;
const strNumber = number.toString();
return strNumber.replace(regex, (match) => {
const ones = parseInt(match % 10);
const tens = Math.floor(parseInt(match) / 10) % 10;
if (tens === 1) {
return match + "th";
} else if (ones === 1) {
return match + "st";
} else if (ones === 2) {
return match + "nd";
} else if (ones === 3) {
return match + "rd";
} else {
return match + "th";
}
});
}
console.log(addOrdinalSuffix(1)); // 出力: 1st
console.log(addOrdinalSuffix(2)); // 出力: 2nd
console.log(addOrdinalSuffix(11)); // 出力: 11th
console.log(addOrdinalSuffix(111)); // 出力: 111th
ライブラリを使用する
いくつかの JavaScript ライブラリは、数字に序数サフィックスを追加する機能を提供しています。
これらのライブラリは、より多くの機能と柔軟性を提供する場合があります。
テンプレートエンジンを使用する
EJS や Handlebars などのテンプレートエンジンを使用して、数字に序数サフィックスを動的に追加することもできます。
<p>The 1st place goes to the winner.</p>
<p>The 2nd place goes to the runner-up.</p>
<p>The 11th place goes to the best dressed.</p>
<
javascript jquery numbers