中文的unicode的范围是:\u4e00-\u9FA5
所以正则可以写成:
var re=/^[\u4E00-\u9FA5\uF900-\uFA2D]*$/
if(re.test(str))
{
alert("是汉字!")
}
else
{
alert("不是汉字!")
}
按字符算的话,不管是字母、数字、符号,还是汉字,都是按一个字符算的,楼上说的“中文算俩字符长度”是错误的。如果是按字节来算的话,则要根据页面的编码来定,比如gb2312,字母、数字、符号等算一个字节,汉字是两个字节;如果是utf-8,则汉字可能是2个、3个或4个字节(常见的是3个字节);如果是utf-16,则不管是字母、数字、符号,还是汉字,都是2个字节;等等。