JS 控制文本框只能输入中文、英文、数字与指定特殊符号

想做姓名输入的js判断是否是中文,但是网上找的很多是源于一篇文章的,判断中文的正则式不对,后来找到一个可以准确判断了,但是是监测里面有中文的就行,跟我想要的只能输入中文的意思相左,所以又找了下面的

 JS 控制文本框只能输入数字
input onkeyup="value=value.replace(/[^0-9]/g,'')" onpaste="value=value.replace(/[^0-9]/g,'')" oncontextmenu = "value=value.replace(/[^0-9]/g,'')"

JS 控制文本框只能输入数字、小数点
input onkeyup="value=value.replace(/[^-9.]/g,'')" onpaste="value=value.replace(/[^-9.]/g,'')" oncontextmenu = "value=value.replace(/[^-9.]/g,'')">

JS 控制文本框只能输入英文
input onkeyup="value=value.replace(/[^a-zA-]/g,'')" onpaste="value=value.replace(/[^a-zA-]/g,'')" oncontextmenu = "value=value.replace(/[^a-zA-]/g,'')">

JS 控制文本框只能输入英文、数字
input onkeyup="value=value.replace(/[^a-zA-0-9]/g,'')" onpaste="value=value.replace(/[^a-zA-0-9]/g,'')" oncontextmenu = "value=value.replace(/[^a-zA-0-9]/g,'')">

JS 控制文本框只能输入中文
input onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'')" onpaste="value=value.replace(/[^u4E00-u9FA5]/g,'')" oncontextmenu = "value=value.replace(/[^u4E00-u9FA5]/g,'')">

JS 控制文本框只能输入中文、英文、数字
input onkeyup="value=value.replace(/[^a-zA-0-9u4E00-u9FA5]/g,'')" onpaste="value=value.replace(/[^a-zA-0-9u4E00-u9FA5]/g,'')" oncontextmenu = "value=value.replace(/[^a-zA-0-9u4E00-u9FA5]/g,'')">

JS 控制文本框只能输入中文、英文、数字、空格
input onkeyup="value=value.replace(/[^a-zA-0-9u4E00-u9FA5 ]/g,'')" onpaste="value=value.replace(/[^a-zA-0-9u4E00-u9FA5 ]/g,'')" oncontextmenu = "value=value.replace(/[^a-zA-0-9u4E00-u9FA5 ]/g,'')">

JS 控制文本框只能输入中文、英文、数字、小数点
input onkeyup="value=value.replace(/[^a-zA-0-9u4E00-u9FA5.]/g,'')" onpaste="value=value.replace(/[^a-zA-0-9u4E00-u9FA5.]/g,'')" oncontextmenu = "value=value.replace(/[^a-zA-0-9u4E00-u9FA5.]/g,'')">


总而言之:先在input标签里输入onkeyup="value=value.replace(/[^X]/g,'')" 然后在(/[X]/g,'')里的X换成你想输入的代码就可以了,中文u4E00-u9FA5,数字0-9,英文a-zA-Z,其它符号@、点或其它符号。也可以多个,用隔开就行了。
例如:中英文 + 数字 + @符号 + 点符号   a-zA-0-9u4E00-u9FA5@.

若想在文本框里不能右键弹出菜单和不能粘贴进复制的信息的话
就要在input里输入 onpaste="return false" oncontextmenu="return false;"

原文地址:https://www.cnblogs.com/hnsongbiao/p/4174226.html