可直接用下面的:
<script>
function check_zh(obj){
obj.value=obj.value.replace(/[u4E00-u9FA5]|[uFE30-uFFA0]/g,'');
}
</script>
<input οnkeyup="check_zh(this)" />
正则匹配:
首先在正则表达式中使用 Unicode,必须使用u开头,接着是字符编码的四位16进制表现形式
简单匹配中文方法: /[^u0000-u00FF]/ (匹配非单字节字符 )
另错误方法:/[^u00-uFF]/ (匹配 非单字节字符、还包括一些全半角符号如,.(){}'"!等、还有vwxyz字符)
说明: ``//u0000-u00ff.包含unicode单字节编码( 0-255编码)包含基本控制字符和拉丁文字母。 采用该否定表达式,粗略判断是否含有中文。
具体的匹配中文及字符方法:/[u4E00-u9FA5uF900-uFA2D]/
说明: u4e00-u9fbf : unicode CJK(中日韩)统一表意字符。u9fa5后至u9fbf为空
uF900-uFAFF : 为unicode CJK 兼容象形文字 。uFA2D后至uFAFF为空
具体可参考unicode编码表:http://www.nengcha.com/code/unicode/class/
//是否含有中文(也包含日文和韩文)
function isChineseChar(str){
var reg = /[u4E00-u9FA5uF900-uFA2D]/;
return reg.test(str);
}
//同理,是否含有全角符号的函数
function isFullwidthChar(str){
var reg = /[uFF00-uFFEF]/;
return reg.test(str);
}
或者:
<script>
function nocn(){
for(i=0;i<document.getElementsByName("nocn")[0].value.length;i++){
var c = document.getElementsByName("nocn")[0].value.substr(i,1);
var ts = escape(c);
if(ts.substring(0,2) == "%u"){
document.getElementsByName("nocn")[0].value = "";
alert("这里不能输入中文/全角字符");
}
}
}
</script>
<table bgcolor="#6699ff" align="center">
<tr>
<td>不能输入中文:</td>
<td><input type="text" name="nocn" onKeyup="nocn()" οnblur="nocn();"></td>
</tr>
<tr>
<td>能输入中文:</td>
<td><input type="text" name="cnok"></td>
</tr>
</table>
文章转自:https://blog.csdn.net/y18749247391/article/details/80067152
更多参考:https://www.cnblogs.com/shosky/archive/2011/07/21/2113186.html