您的位置:首页 > 其它

关于中文输入法下 输入框的实时监听 校验

2014-11-04 16:02 381 查看
有个地方需要做中英文输入的即时校验。

大致思路就是监听鼠标的keyup事件,用正则去校验下。

当input要求英文的时候是可以的,但是在中文输入的时候keyup就失效了。

然后就费解了。。。

找了些资料,发现,原来老外是拉丁语系啊没有中文输入法这一说啊,可以google自动补全神码的业工作好好啊,怎么回事呢。。

经过尝试,大致思路是监听输入框的鼠标焦点事件,每隔一段时间正则检验一下。~~

直接贴码:

$(function () {
$("#chinese-name1").bind('focus',filter_time);  //绑定获取焦点事件
})

filter_time = function(){
var time = setInterval(regular_expression, 1000);  //失去焦点的时候清楚定时器
$(this).bind('blur',function(){
clearInterval(time);
});
};

regular_expression = function(){
$("#chinese-name1").val($("#chinese-name1").val().replace(/[^\u4E00-\u9FA5]/g,''));//正则匹配textarea值只能是中文
}


另:

先在‘<input>’ 里输入
onkeyup="value=value.replace(/[^\X]/g,'')"

然后在(/[\X]/g,'')里的 X 换成你想输入的代码就可以了,
中文u4E00-u9FA5,数字0-9,英文a-z\A-Z,其它符号@、点或其它 符号。也可以多个,用\隔开就行了。
例如:中英文 + 数字 + @符号 + 点符号 \a-\z\A-\Z0-9\u4E00-\u9FA5\@\.

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

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(/[^\0-9\.]/g,'')" onpaste="value=value.replace(/[^\0-9\.]/g,'')" oncontextmenu = "value=value.replace(/[^\0-9\.]/g,'')">

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

JS 控制文本框只能输入英文、数字
<input onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')" onpaste="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')" oncontextmenu = "value=value.replace(/[^\a-\z\A-\Z0-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-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')" onpaste="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')" oncontextmenu = "value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')">

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

JS 控制文本框只能输入中文、英文、数字、小数点
<input onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')" onpaste="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')" oncontextmenu = "value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')">
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: