獲取字元長度以及模擬文字框maxlength實現的功能
阿新 • • 發佈:2020-08-27
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] }2. 呼叫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('') }
enterEnglishName() { if ( !this.$utils.getByteVal( this.ruleFormEnter.englishName, this.maximumCharacter ) ) { this.isRemarkTips = true this.$set( this.ruleFormEnter, 'englishName', this.$utils.limitValMaxLength( this.ruleFormEnter.englishName,) } else { this.isRemarkTips = false } }this.maximumCharacter )