https://stackoverflow.com/questions/5620516/how-to-get-text-bold-in-alert-or-confirm-box
https://github.com/davidkonrad/toUnicodeVariant
function toUnicodeVariant(str, variant, flags) {
const offsets = {
m: [0x1d670, 0x1d7f6],
b: [0x1d400, 0x1d7ce],
i: [0x1d434, 0x00030],
bi: [0x1d468, 0x00030],
c: [0x1d49c, 0x00030],
bc: [0x1d4d0, 0x00030],
g: [0x1d504, 0x00030],
d: [0x1d538, 0x1d7d8],
bg: [0x1d56c, 0x00030],
s: [0x1d5a0, 0x1d7e2],
bs: [0x1d5d4, 0x1d7ec],
is: [0x1d608, 0x00030],
bis: [0x1d63c, 0x00030],
o: [0x24B6, 0x2460],
p: [0x249C, 0x2474],
w: [0xff21, 0xff10],
u: [0x2090, 0xff10]
}
const variantOffsets = {
'monospace': 'm',
'bold': 'b',
'italic': 'i',
'bold italic': 'bi',
'script': 'c',
'bold script': 'bc',
'gothic': 'g',
'gothic bold': 'bg',
'doublestruck': 'd',
'sans': 's',
'bold sans': 'bs',
'italic sans': 'is',
'bold italic sans': 'bis',
'parenthesis': 'p',
'circled': 'o',
'fullwidth': 'w'
}
// special characters (absolute values)
var special = {
m: {
' ': 0x2000,
'-': 0x2013
},
i: {
'h': 0x210e
},
g: {
'C': 0x212d,
'H': 0x210c,
'I': 0x2111,
'R': 0x211c,
'Z': 0x2128
},
o: {
'0': 0x24EA,
'1': 0x2460,
'2': 0x2461,
'3': 0x2462,
'4': 0x2463,
'5': 0x2464,
'6': 0x2465,
'7': 0x2466,
'8': 0x2467,
'9': 0x2468,
},
p: {},
w: {}
}
//support for parenthesized latin letters small cases
for (var i = 97; i <= 122; i++) {
special.p[String.fromCharCode(i)] = 0x249C + (i - 97)
}
//support for full width latin letters small cases
for (var i = 97; i <= 122; i++) {
special.w[String.fromCharCode(i)] = 0xff41 + (i - 97)
}
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
const numbers = '0123456789';
var getType = function (variant) {
if (variantOffsets[variant]) return variantOffsets[variant]
if (offsets[variant]) return variant;
return 'm'; //monospace as default
}
var getFlag = function (flag, flags) {
if (!flags) return false
return flags.split(',').indexOf(flag) > -1
}
var type = getType(variant);
var underline = getFlag('underline', flags);
var strike = getFlag('strike', flags);
var result = '';
for (var k of str) {
let index
let c = k
if (special[type] && special[type][c]) c = String.fromCodePoint(special[type][c])
if (type && (index = chars.indexOf(c)) > -1) {
result += String.fromCodePoint(index + offsets[type][0])
} else if (type && (index = numbers.indexOf(c)) > -1) {
result += String.fromCodePoint(index + offsets[type][1])
} else {
result += c
}
if (underline) result += '\u0332' // add combining underline
if (strike) result += '\u0336' // add combining strike
}
return result
}
이 함수를 추가하고
alert('your chance is: ' + toUnicodeVariant('100%', 'bold sans', 'bold'));
이렇게 호출하면 된다고 한다..
그치만 이렇게까지 하고 싶지 않아.......................................................................................................
반응형
'차근차근 > JAVA Script' 카테고리의 다른 글
상승하는 그래프, 움직이는 글자 (0) | 2024.12.23 |
---|---|
한글 최신 파일에서 자동으로 추가되는 스크립트 삭제하기 (0) | 2024.11.11 |
유튜브 아이프레임 일시정지 (1) | 2023.12.29 |
메뉴 상단 고정, 탭이동 js (0) | 2023.12.29 |
ajax뒤로가기 시 이전 데이터 유지 (0) | 2023.09.05 |