You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
829 B
35 lines
829 B
/**
|
|
* 获取字符串的长度ascii长度为1 中文长度为2
|
|
* @param str
|
|
* @returns {number}
|
|
*/
|
|
export const getStrFullLength = (str = '') =>
|
|
str.split('').reduce((pre, cur) => {
|
|
const charCode = cur.charCodeAt(0)
|
|
if (charCode >= 0 && charCode <= 128) {
|
|
return pre + 1
|
|
}
|
|
return pre + 2
|
|
}, 0)
|
|
|
|
/**
|
|
* 给定一个字符串和一个长度,将此字符串按指定长度截取
|
|
* @param str
|
|
* @param maxLength
|
|
* @returns {string}
|
|
*/
|
|
export const cutStrByFullLength = (str = '', maxLength) => {
|
|
let showLength = 0
|
|
return str.split('').reduce((pre, cur) => {
|
|
const charCode = cur.charCodeAt(0)
|
|
if (charCode >= 0 && charCode <= 128) {
|
|
showLength += 1
|
|
} else {
|
|
showLength += 2
|
|
}
|
|
if (showLength <= maxLength) {
|
|
return pre + cur
|
|
}
|
|
return pre
|
|
}, '')
|
|
} |