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

JavaScript09

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('汉字验证')){

}

下面的这个函数就是判断输入的值是否含有汉字或字符:function

checkFormat(str){if

(escape(str).indexOf("%u")!=-1)

alert("不能含有汉字")

else

if(str.match(/\D/)!=null){alert('不能含有字母')

}

}其中,str是你在文本框中输入的值,传到此函数中,来进行判断。具体用法就是:

this.value即为你输入的值。当输完以后在别的地方点一下左键即可触发本函数来判断你是否输入了汉字或字符。另外,还可以在此函数上改进一下,再加一个参数用来显示哪个属性不能为空:function

checkFormat(str,name){if

(escape(str).indexOf("%u")!=-1)

if(name=='phone')

{

alert("电话不能含有汉字")

}

else

if(str.match(/\D/)!=null)

{

if(name=='phone')

{

alert('电话不能含有字母')

}