perf[utils.js]: refactor byteLength function (#1650)

This commit is contained in:
MaYuanhai 2019-03-04 10:54:58 +08:00 committed by Pan
parent c44d001df6
commit 9a5827ca8a
1 changed files with 10 additions and 11 deletions

View File

@ -95,20 +95,19 @@ export function getQueryObject(url) {
}
/**
*get getByteLen
* @param {Sting} val input value
* @param {Sting} input value
* @returns {number} output value
*/
export function getByteLen(val) {
let len = 0
for (let i = 0; i < val.length; i++) {
if (val[i].match(/[^\x00-\xff]/gi) != null) {
len += 1
} else {
len += 0.5
}
export function byteLength(str) {
// returns the byte length of an utf8 string
let s = str.length
for (var i = str.length - 1; i >= 0; i--) {
const code = str.charCodeAt(i)
if (code > 0x7f && code <= 0x7ff) s++
else if (code > 0x7ff && code <= 0xffff) s += 2
if (code >= 0xDC00 && code <= 0xDFFF) i--
}
return Math.floor(len)
return s
}
export function cleanArray(actual) {