JavaScriptで後ろから部分文字列を取得する

JavaScriptで文字列の末尾から部分文字列を取り出すには、文字列の長さから取得したい部分文字列の長さを引いた位置から後の文字列を取得する正規表現を使用します。

JavaScriptのsubstringメソッドでは、絵文字や「𠮷」などのサロゲートペアを使った2コードユニットで表現される文字が正しく処理できないため、注意が必要です。

ソースコード

/**
 * 指定された文字列の後ろから部分文字列を取得します
 *
 * @param {string} str 文字列
 * @param {number} len 部分文字列の長さ(桁数)
 * @returns {string} 部分文字列
 */
const substringFromEnd = (str, len) => {
	if (len < 0) {
		len = 0;
	}

	const strLen = Array.from(str).length;

	if (strLen < len) {
		return str;
	}

	const reg = new RegExp(`^.{${strLen - len}}(.{0,${len}})`, 'u');
	return str.match(reg)?.[1];
};

検証

文字列と部分文字列の長さ(桁数)を指定して関数を実行してください。

引数の入力

substringFromEnd(
 
,
 );

検証結果

Follow me!

photo by:Kelly Sikkema