したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。

bbs2chreader/chaika 避難所 ★3

661名無しさん:2015/11/23(月) 22:32:58 ID:SmljxsUQ0
>>617

convReftoChar: function(aStrings) {
// Apple Color Emoji等の EVS(絵文字バリエーション・シーケンス)は削除
aStrings = aStrings.replace(/&#(?:6503[89]|xfe0[ef]);/ig, '');
// サロゲートペアではない数値参照を先に文字化
aStrings = aStrings.replace(/&#(x[0-9a-f]+|[0-9]+);/ig, function(aStr, aAlfaNum) {
let aValue = parseInt(Number('0' + aAlfaNum).toString(16), 16);
// サロゲートペア判定
if (aValue > 0xD7FF && aValue < 0xE000)
return '&#' + aValue + ';';
// BMP(0x0000-0xFFFF)以外の文字はサロゲートペアに分解したうえで文字化する
let SMP = parseInt(Number('0' + aAlfaNum).toString(16), 16) - 0x10000;
if (SMP > -1) {
let highSP = (SMP >> 10) + 0xD800;
let lowSP = (SMP % 0x400) + 0xDC00;
return String.fromCharCode(highSP, lowSP);
}
return String.fromCharCode('0' + aAlfaNum);
});
// サロゲートペアの数値参照を文字化
aStrings = aStrings.replace(/&#([0-9]+);&#([0-9]+);/ig, function(aStr, ahighSP, alowSP) {
let highSP = parseInt(ahighSP, 10);
let lowSP = parseInt(alowSP, 10);
return String.fromCharCode(highSP, lowSP);
});
return aStrings;
}




掲示板管理者へ連絡 無料レンタル掲示板