1. 程式人生 > 實用技巧 >獲取字元長度以及模擬文字框maxlength實現的功能

獲取字元長度以及模擬文字框maxlength實現的功能

1. 方法

/***

* 獲取字元長度
* @param val 文字值
* @param max 最大位元組數
* @returns
*/
getByteVal(val, max) {
var returnValue = ''
var byteValLen = 0
for (var i = 0; i < val.length; i++) {
if (val[i].match(/[^\x00-\xff]/gi) != null) byteValLen += 2
else byteValLen += 1
if (byteValLen > max) break
returnValue += val[i]
}
if (byteValLen > max) { return false } else { return true } }, /*** * 將文字框字元長度限制在規定的位元組個數內 * @param str 文字值 * @param maxLength 最大位元組數 * @returns */ limitValMaxLength(str, maxLength) { let result = [] for (let i = 0; i < maxLength; i++) { let char = str[i] if (/[^\x00-\xff]/gi.test(char)) { maxLength-- result.push(
char) } else { result.push(char) } } return result.join('') }

2. 呼叫
enterEnglishName() {
if (
!this.$utils.getByteVal(
this.ruleFormEnter.englishName,
this.maximumCharacter
)
) {
this.isRemarkTips = true
this.$set(
this.ruleFormEnter,
'englishName',
this.$utils.limitValMaxLength(
this.ruleFormEnter.englishName,
this.maximumCharacter )

) } else { this.isRemarkTips = false } }