<script> function doit(){ var v = document.forms[0].txt.value; var s = ""; var n = 0; for(var i=0; i<v.length; i++){ if(v.charCodeAt(i)<256) n++; else n += 2; if(n<=10) s += v.charAt(i); else break; } alert(s); } </script> <form> <input type="text" name="txt"><input type="button" value="xxx" onclick="doit()"> </form>
function getByteCount(str) { return str.replace(/[^\x00-\xff]^/, "xx").length; }alert(getByteCount("ºº×Öabc"));蹭分。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> new document </title> <script type="text/javascript"> <!-- function Test(){ var count = 0; var reg = /[^\x00-\xff]/g; var str = document.getElementById("otxt").value; var result = str.match(reg) for(var i =0;i< str.split("").length;i++){ count =(str.split("")[i].match(reg)) ? count + 2 : count + 1; } if(count > 10) alert("too much") }
高手,学习了 既然都有数据简单点,是不是可以只要啊: var x=substring(document.getElementById("ID号").value,10)
function Test(){ var count = 0; var reg = /[^\x00-\xff]/g; var str = document.getElementById("otxt").value; var result = str.match(reg) for(var i =0;i< str.split("").length;i++){ count =(str.split("")[i].match(reg)) ? count + 2 : count + 1; } if(count>10){document.getElementById("otxt").value=str.substring(0,10);} }这样也是可以输入10个中文
<script>
function doit(){
var v = document.forms[0].txt.value;
var s = "";
var n = 0;
for(var i=0; i<v.length; i++){
if(v.charCodeAt(i)<256) n++;
else n += 2;
if(n<=10) s += v.charAt(i);
else break;
}
alert(s);
}
</script>
<form>
<input type="text" name="txt"><input type="button" value="xxx" onclick="doit()">
</form>
return str.replace(/[^\x00-\xff]^/, "xx").length;
}alert(getByteCount("ºº×Öabc"));蹭分。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<script type="text/javascript">
<!--
function Test(){
var count = 0;
var reg = /[^\x00-\xff]/g;
var str = document.getElementById("otxt").value;
var result = str.match(reg)
for(var i =0;i< str.split("").length;i++){
count =(str.split("")[i].match(reg)) ? count + 2 : count + 1;
}
if(count > 10) alert("too much")
}
//-->
</script>
</head> <body>
<input type="text" id="otxt" />
<input type="button" value="Test" onclick="Test();" />
</body>
</html>
{
UCHAR u8State=0;//0:全字状态 1:半字状态
short i;
for(i=0;i<s16Len && szBuf[i]!='\0';i++)
{
switch(u8State)
{
case 0:
if(szBuf[i] & 0x80)
u8State=1;
break;
case 1:
u8State=0;
break;
}
}
if(u8State)
{
i--;
// szBuf[i]='\0';//去除半个汉字
}
return i;
}
function textCounter(field, maxlimit) {
if (field.value.Trim().getByteLength() > maxlimit)
field.value = field.value.Trim().substring(0, maxlimit);
}
String.prototype.getByteLength=function(){return this.replace(/[^\x00-\xff]/g, "mm").length;};我这样为什么还是可以10个中文?textCounter(文本框ID,10)
这里maxlimit还是10...
既然都有数据简单点,是不是可以只要啊:
var x=substring(document.getElementById("ID号").value,10)
var count = 0;
var reg = /[^\x00-\xff]/g;
var str = document.getElementById("otxt").value;
var result = str.match(reg)
for(var i =0;i< str.split("").length;i++){
count =(str.split("")[i].match(reg)) ? count + 2 : count + 1;
}
if(count>10){document.getElementById("otxt").value=str.substring(0,10);}
}这样也是可以输入10个中文
你应该判断是(还是有?你题目没定好)汉字的时候截5个...
likeif(汉字){document.getElementById("otxt").value=str.substring(0,5);}
else{){document.getElementById("otxt").value=str.substring(0,10);}
支持1楼地
function getByteCount(str) {
return str.replace(/[^\x00-\xff]/g, "**").length;
}
var value;
function doit(obj)
{
if(getByteCount(obj.value)>12){
obj.value=value;
}
value=obj.value
}
</script>
<input type="text" name="txt" onkeyup="doit(this)" onafterpaste="doit(this)">