js如何判断字符是中文,英文,数字还是字符

JavaScript08

js如何判断字符是中文,英文,数字还是字符,第1张

1、使用正则表达式判断中文正则:[\u4E00-\u9FA5]英文正则:[A-Za-z]数字正则:[0-9]//验证是否是中文var pattern = new RegExp("[\u4E00-\u9FA5]+")var str = "中文字符"if(pattern.test(str)){alert('该字符串是中文')}//验证是否是英文var pattern2 = new RegExp("[A-Za-z]+")var str2 = "abcdefsgaaweg"if(pattern2.test(str2)){alert('该字符串是英文')}//验证是否是数字var pattern3 = new RegExp("[0-9]+")var str3 = "234234"if(pattern3.test(str3)){alert('该字符串是数字')}

")return false}return true}第二种方法(包含中文则返回"true",不包含中文则返回"false"):

<script language="javascript">function isChina(s){var patrn=/[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/giif(!patrn.exec(s)){return false}else{return true}}</script>第三种方法

<script language="javascript">var str='中国'if(escape(str).indexOf("%u")<0){alert("没有包含中文")}else{alert("包含中文")}</script>escape对字符串进行编码时,字符值大于255的以"%u****"格式存储,而字符值大于255的恰好是非英文字符(一般是中文字符,非中文字符也可以当作中文字符考虑);indexOf用以判断在字符串中是否存在某子字符串,找不到返回"-1"。

给输入加一个失去焦点事件onblur,再用正则表达式判断输入框的内容有没有除了数字的内容。需要注意的地方是数字中可能有小说点。可以用正则表达式。如:

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()          

}       

  }