Unicode(¥uxxx形式)を文字列へアンエスケープ
Unicode(¥uxxx形式)を文字列へアンエスケープするには、次のような方法で可能です。
関数定義
JavaScript (ES5)
/**
* Unicode(¥uxxx形式)を文字列へアンエスケープ
* @param {string} str エスケープされた文字列
* @return 文字列へアンエスケープされた文字列を返す
*/
var unicodeUnescape = function(str) {
var result = '', strs = str.match(/\\u.{4}/ig);
if (!strs) return '';
for (var i = 0, len = strs.length; i < len; i++) {
result += String.fromCharCode(strs[i].replace('\\u', '0x'));
}
return result;
};
JavaScript (ES11以降)
/**
* Unicode(¥uxxx形式)を文字列へアンエスケープ
* @param {string} str エスケープされた文字列
* @returns 文字列へアンエスケープされた文字列を返す
*/
const unicodeUnescape = str => (str?.match(/\\u.{4}/ig) ?? []).reduce((result, str) => {
return result + String.fromCharCode(str.replace('\\u', '0x'));
}, '');
使い方
引数名 | 型 | 説明 | |
---|---|---|---|
第一引数 必須 |
str | string | エスケープされた文字列 |
戻り値
文字列へアンエスケープされた文字列を返します。
JavaScript (ES5)
var result = unicodeUnescape('abc123\\u3042\\u3044\\u3046\\u3048\\u304a');
alert(result);
JavaScript (ES6以降)
const result = unicodeUnescape('abc123\\u3042\\u3044\\u3046\\u3048\\u304a');
console.log(result);