如何JS判断一个字符是汉字还是字母? /^[\x00-\xff]/.test(str); //true 为字母, false 为非字母 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function checkIsChinese(str){ //如果值为空,通过校验 if (str == "") return true; var pattern = /^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])*$/gi; if (pattern.test(str)) return true; else return false;}//~~~ 请问上面语句的是什么意思?我要在一个INPUT中计算实际的字节数比如一段"abcde呆板承德"字符串,字节数应该是5个字母占用5个字节,4个汉字占用8个字节一共是13个字节。请问怎么计算呢? 获取中文字符长度,一个汉字两个字符String.prototype.realLength = function(){ return this.replace(/[^\x00-\xff]/g,"**").length;}var str = "abcde呆板承德"alert(str.realLength()) /^[\x00-\xff]/.test(str); 这句什么意思?var pattern = /^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])*$/gi;是什么意思?String.prototype.realLength = function(){ return this.replace(/[^\x00-\xff]/g,"**").length;}这个函数什么意思?小弟不懂正则表达式的规则。麻烦你解答这些问题了,感激不禁 /^[\x00-\xff]/.test(str); \x00-\xff 是字符编码的范围,如果查过这个范围,就不是字母和数字了,test就是利用上面的正则表达式去检测str串,如果正确,返回true/^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])*$/gi这个范围是所有汉字和全角的unicode值,g代表全文搜索,i代表忽略大小写return this.replace(/[^\x00-\xff]/g,"**").length;代表把全部符合\x00-\xff条件的字符用**替换,然后计算长度,即遇到一个中文就用**替换,计算为两位应该很详细了吧L:) 最简单的,用ASC函数判断if (asc(xx)!="") return true; 很详细了,比较好alert(this.replace(/[^\x00-\xff]/g,"**").length);就得到长度了 alert(str.replace(/[^\x00-\xff]/g,"**").length); <%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%><html><script language="JavaScript">function strlen(str){ var strlength; var i; strlength=0 ; for(i=0;i<str.length;i++) { if(str.charCodeAt(i)>255) //判断输入的是否是汉字,如果是汉字的话,则字符串长度加2 strlength += 2; else strlength++; } return strlength ;}function notice(){ alert("输入的字符串是:" + form1.txt1.value + ",它的长度是" + strlen(form1.txt1.value));}</script><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>测试字符串长度</title></head><body><form name="form1" method="post" action=""> <input type="text" name="txt1" value=""> <input type="button" name="btn1" value="测 试" onClick="notice()"></form></body></html> strlength += 2; else strlength++; } return strlength ;}function notice(){ alert("输入的字符串是:" + form1.txt1.value + ",它的长度是" + strlen(form1.txt1.value));}</script>看看这个,一定行! 主要是:charCodeAt()这个函数; Microsoft Windows脚本技术http://vip.5d.cn/friday/upload/SCRIPT56.chm //有正则资料,语法介绍.这个网站的学习的实例.http://www.regexlib.com/Default.aspx 关于XMLHTTP的函数返回值问题 firefox和ie的区别问题? var r=Math.random() 这个js怎么没反应? ajax 进度条 js总是报错 [求助]一个关于自动向网页表单提交数据的问题 推荐一个javascript的好地方 一个table程序 up有分 go-->300分的问题 急!请问如何以程序的方式使得访问过的Web页面不添加到浏览器的历史记录中。 在iframe里如何获得页面里的所有对象? 谁能告诉我这段代码错在哪儿,急!!! 下拉列表框的问题!!
{
//如果值为空,通过校验
if (str == "")
return true; var pattern = /^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])*$/gi;
if (pattern.test(str))
return true;
else
return false;
}//~~~
{
return this.replace(/[^\x00-\xff]/g,"**").length;
}var str = "abcde呆板承德"
alert(str.realLength())
var pattern = /^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])*$/gi;是什么意思?String.prototype.realLength = function()
{
return this.replace(/[^\x00-\xff]/g,"**").length;
}这个函数什么意思?小弟不懂正则表达式的规则。麻烦你解答这些问题了,感激不禁
return this.replace(/[^\x00-\xff]/g,"**").length;代表把全部符合\x00-\xff条件的字符用**替换,然后计算长度,即遇到一个中文就用**替换,计算为两位应该很详细了吧L:)
if (asc(xx)!="") return true;
alert(this.replace(/[^\x00-\xff]/g,"**").length);就得到长度了
<html>
<script language="JavaScript">
function strlen(str)
{
var strlength;
var i;
strlength=0 ;
for(i=0;i<str.length;i++)
{
if(str.charCodeAt(i)>255) //判断输入的是否是汉字,如果是汉字的话,则字符串长度加2
strlength += 2;
else
strlength++;
}
return strlength ;
}
function notice()
{
alert("输入的字符串是:" + form1.txt1.value + ",它的长度是" + strlen(form1.txt1.value));
}
</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>测试字符串长度</title>
</head><body>
<form name="form1" method="post" action="">
<input type="text" name="txt1" value="">
<input type="button" name="btn1" value="测 试" onClick="notice()">
</form>
</body>
</html> strlength += 2;
else
strlength++;
}
return strlength ;
}
function notice()
{
alert("输入的字符串是:" + form1.txt1.value + ",它的长度是" + strlen(form1.txt1.value));
}
</script>
看看这个,一定行!
http://vip.5d.cn/friday/upload/SCRIPT56.chm
//有正则资料,语法介绍.这个网站的学习的实例.
http://www.regexlib.com/Default.aspx