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