项目中遇到的问题是要求输入的最大字节是10个,但是input自带的maxlength不能实现,正则表达式也不好实现,所以看到别人的一种写法,感觉很好用,所以记录下来
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
function WidthCheck(str, maxLen){
var w = 0;
var tempCount = 0;
//length 获取字数数,不区分汉子和英文
for (var i=0; i<str.value.length; i++) {
//charCodeAt()获取字符串中某一个字符的编码
var c = str.value.charCodeAt(i);
console.log(c);
//单字节加1
if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {
w++;
} else {
w+=2;
}
if (w > maxLen) {
str.value = str.value.substr(0,i);
break;
alert('超过');
}
}
}
</script>
<input type="text" id="nickname" class="nickname" value="" onkeyup="WidthCheck(this,10);"/>
</body>
</html>