js判断字符是否是汉字的两种方法小结

JavaScript012

js判断字符是否是汉字的两种方法小结,第1张

这些资料网上都有的啊

1、用正则表达式判断

代码如下:

<!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>

<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312" />

<title>js判断字符是否是汉字</title>

<style type="text/css">

.content{

width:350px

overflow:hidden

border:1px solid #ddd

}

</style>

<script language="javascript" type="text/javascript">

function CheckChinese(obj,val){

var reg = new RegExp("[u4E00-u9FFF]+","g")

if(reg.test(val)){

alert("不能输入汉字!")

var strObj = document.getElementById(obj)

strObj.value = ""

strObj.focus()

}

}

</script>

</head>

<body>

<div class="content">

<div>测试字符:<input id="test" type="text" onblur="CheckChinese('test',this.value)" /></div>

</div>

</body>

</html>

2、用 Unicode 字符范围判断

以下方法是用于统计输入字符串的长度,如果是汉字,则字符串长度加2 ;否则字符串长度加1。

代码如下:

function chkstrlen(str)

{

var strlen = 0

for(var i = 0i <str.lengthi++)

{

if(str.charCodeAt(i) >255) //如果是汉字,则字符串长度加2

strlen += 2

else

strlen++

}

return strlen

}

可以使用正则表达式进行验证:

var reg=/^[\u2E80-\u9FFF]+$///Unicode编码中的汉字范围

if(reg.text('汉字验证')){

}