length:<span id="normal"></span>
<br>
全角半角判定:<span id="custom"></span>
<br>
<!-- 切り上げ -->
全角半角判定(切り上げ):<span id="ceil"></span>
<br>
<!-- 切り下げ -->
全角半角判定(切り下げ):<span id="floor"></span>
const get2byteLength = (str) => {
let count = 0
for (let i = 0, len = str.length; i < len; i++) {
let c = str.charCodeAt(i)
if (!str[i].match(/\r?\n/g)) {
if (c >= 0x0 && c <= 0x7f) {
count += 0.5
} else {
count += 1
}
}
}
return count
}
const text = 'abcdefgあいうえお'
document.getElementById('normal').innerHTML = text.length
document.getElementById('custom').innerHTML = get2byteLength(text)
document.getElementById('ceil').innerHTML = Math.ceil(get2byteLength(text))
document.getElementById('floor').innerHTML = Math.floor(get2byteLength(text))
View Compiled
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.