【www.gdgbn.com--正则表达式】
利用正则和charcodeat() 区分中英文字符的两种方法
<script>
window.onload=function(){
var regexpform=document.getelementbyid("regexp");
var charcodeat=document.getelementbyid("charcodeat");
var entryval=null;//输入的值
var cnchar=null;//中文字符
var cnarr=new array();//存放中文字符的数组
var entrylen=null;//输入字符的长度
//通过正则区分中英文字符--mr.think推荐方法
regexpform.onblur=function(){
entryval=this.value;
entrylen=entryval.length;
cnchar=entryval.match(/[^x00-x80]/g);//利用match方法检索出中文字符并返回一个存放中文的数组
if(cnchar!=null){
entrylen+=cnchar.length;//算出实际的字符长度
alert("你输入了 "+cnchar.length+" 个中文字符;n它们分别是: "+cnchar+" ;n共计输入了 "+entrylen+" 个字符.");
}else{
entrylen=0;
alert("你没有输入任何中文字符! ");
}
}
//通过charcodeat区分中英文字符
charcodeat.onblur=function(){
entryval=this.value;
entrylen=entryval.length;
for(var i=0;i
cnarr.push(entryval[i]);//讲符合条件的值插入到中文字符数组中
//注意一个小bug,push是向数组的末尾添加一个或多个元素并返回新的长度,所以未刷新的情况下反复blur会累加字符值
}
}
entrylen+=cnarr.length;
alert("你输入了 "+cnarr.length+" 个中文字符;n它们分别是: "+cnarr+" ;n共计输入了 "+entrylen+" 个字符.");
}
}
</script>
正则无疑是最强大的判断各种条件的方法, 最近也在研习它, 虽然枯燥, 但仍有乐趣. 用它来判断一个双字节的中文字符也是轻而易举地. 而判断中文字符, mr.think也是非常推荐用这种方法的, 简单且执行效率高.
regexpform.onblur=function(){
entryval=this.value;
entrylen=entryval.length;
cnchar=entryval.match(/[^x00-x80]/g);//利用match方法检索出中文字符并返回一个存放中文的数组
if(cnchar!=null){
entrylen+=cnchar.length;//算出实际的字符长度
}
}
正则无疑是最强大的判断各种条件的方法, 最近也在研习它, 虽然枯燥, 但仍有乐趣. 用它来判断一个双字节的中文字符也是轻而易举地. 而判断中文字符, mr.think也是非常推荐用这种方法的, 简单且执行效率高.
entryval=this.value;
entrylen=entryval.length;
for(var i=0;i
cnarr.push(entryval[i]);//讲符合条件的值插入到中文字符数组中
//注意一个小bug,push是向数组的末尾添加一个或多个元素并返回新的长度,所以未刷新的情况下反复blur会累加字符值
}
}
entrylen+=cnarr.length;