if(sysname.length >0&&sysname.length>100)
{
alert("系统名称输入有误,最长不超过100个非中文字符!");
document.frm.sysname.focus();
return false;
}我用的是这个方法,可是我可以输入超过50个的中文字符节
{
alert("系统名称输入有误,最长不超过100个非中文字符!");
document.frm.sysname.focus();
return false;
}我用的是这个方法,可是我可以输入超过50个的中文字符节
temp=temp.replace(/[\u4e00-\u9fa5]/g,"**")
if(temp.length >0&&temp.length>100)
{
alert("系统名称输入有误,最长不超过100个非中文字符!");
document.frm.sysname.focus();
return false;
}
<script>
String.prototype.len=function()
{
return this.replace(/[^\x00-\xff]/g,"**").length;
}
var str="joycenter的字符串";
alert(str.len());
</script>
首先把所有单字节的字符替换成双字节。然后获取字符串的长度length
注意string.length是获取字符串中字符的长度,而不是字符串所占的字节数了。
joycenter的字符串 的字节数为17,其中9个英文字符(单字节) 4个中文字符(双字节)
joycenter的字符串 的字符数为13纠正一下你的错误了是 大于0 且 小于等于100 (不是 大于100)。
if(sysname.length >0 && sysname.length <= 100)
{
alert("系统名称输入有误,最长不超过100个非中文字符!");
document.frm.sysname.focus();
return false;
}我用的是这个方法,可是我可以输入超过50个的中文字符节
你弄清楚中文字符串的字符数 和 中文字符串的字节数的区别了。
如果是限制100个字节的 字符串就要加一点东西
sysname = sysname.replace(/[^\x00-\xff]/g,"**").length;
if(sysname.length >0 && sysname.length <= 100)
{
alert("系统名称输入有误,最长不超过100个非中文字符!");
document.frm.sysname.focus();
return false;
}
如果是限制50个字符的就写成sysname.length <= 50 了
关键是弄清楚概念,呵呵