euc-kr byte ๊ตฌํ๊ธฐ
ํ๊ธ ํ ๊ธ์๋น 2byte ๊ธฐ์ค ๋ฐ์ดํธ ์ ๊ณ์ฐ
function calcByteEuckr(str) {
return str
.split('')
.map(s => s.charCodeAt(0)) // ์ ๋์ฝ๋ ๊ฐ์ผ๋ก ๋ณํ
.reduce((prev, c) => (prev + ((c === 10) ? 2 : ((c >> 7) ? 2 : 1))), 0); // c ๊ฐ์ด 0~127์ฌ์ด์ ์์ผ๋ฉด 1๋ฐ์ดํธ
}
์ต๋ byte ๋งํผ๋ง ๋ฌธ์์ด ์๋ฅด๊ธฐ
function getLimitedByteEuckrText(str, maxByte) {
if (!str) return;
let b;
for (b = i = 0; (c = str.charCodeAt(i)); ) {
b += (c === 10) ? 2 : ((c >> 7) ? 2 : 1);
if (maxByte && b > maxByte) {
break;
}
i++;
}
return maxByte ? str.substring(0, i) : b;
}
'๊ฐ๋ฐ > Javascript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
javascript ๊ฐ์ฒด ํค ์ด๋ฆ ๋ณ๊ฒฝ (0) | 2022.07.08 |
---|---|
javascript ๋ฐฐ์ด ๋ด ์ค๋ณต ๊ฐ ๊ตฌํ๊ธฐ (0) | 2022.06.23 |
Object.freeze ๊ฐ์ฒด ๋๊ฒฐ / ๊ฐ์ฒด ์ฝ๊ธฐ ์๋ (0) | 2022.05.12 |
ES6 Syntax (0) | 2022.05.03 |
TypeScript (0) | 2022.04.28 |
๋๊ธ