使用regex的jquery keydown绑定不会验证撇号和句点
jquery keydown bind with regex does not validate for apostrophe and periods
我一直在使用jquery来捕获keydown事件,并验证不同情况下输入的文本,如:仅字符、字母数字、字符和空格等。
Regex使用:带空格的字符:^[a-zA-Z]+$仅限字符:^[a-zA-Z]+$字母数字:^[a-zA-Z0-9]+$
这就是我使用绑定函数的方式:
$('.chars_and_space_only').bind('keydown', function (event) {
// http://stackoverflow.com/a/8833854/260665
var eventCode = !event.charCode ? event.which : event.charCode;
if((eventCode >= 37 && eventCode <= 40) || eventCode == 8 || eventCode == 9 || eventCode == 46) { // Left / Right Arrow, Backspace, Delete keys
return;
}
// http://stackoverflow.com/a/8833854/260665
var regex = new RegExp("^[a-zA-Z ]+$");
var key = String.fromCharCode(eventCode);
if (!regex.test(key)) {
event.preventDefault();
return false;
}
});
上面所有的用例都可以正常工作,但是我现在必须包括字符、空格、撇号和句点。这就是我修改过的方法:
$(".chars_space_dots_apostrophes_only").bind('keydown', function (event) {
// http://stackoverflow.com/a/8833854/260665
var eventCode = !event.charCode ? event.which : event.charCode;
if((eventCode >= 37 && eventCode <= 40) || eventCode == 8 || eventCode == 9 || eventCode == 46) { // Left / Right Arrow, Backspace, Delete keys
return;
}
// http://stackoverflow.com/a/8833854/260665
var regex = new RegExp("^[a-zA-Z '.]+$");
var key = String.fromCharCode(eventCode);
if (!regex.test(key)) {
event.preventDefault();
return false;
}
});
奇怪的是,这似乎不起作用。这是小提琴:https://jsfiddle.net/ugu8f4y3/
Regex使用:^[a-zA-Z'.]+$Regex验证器确实验证了上述Regex:的文本
你好。世界
但是fiddle中的文本字段不允许我输入句点和撇号,是不是我遗漏了什么?
问题出在jquery和keydown
事件上。把它换成keypress
就可以了。您还应该只需要签入which
。
keydown
和keyup
对于关心钥匙物理位置的情况非常重要。在这种情况下,您想知道按键是否被按下,并处理由此产生的输入。jquery将以不同的方式规范字符代码。
有关按键、向下键和向上键之间差异的更多信息。
更新的Fiddle
相关文章:
- 使用regex的jquery keydown绑定不会验证撇号和句点
- 我们如何使用css或JavaScript在i/j上更改句点(点)的颜色
- JavaScript从字符串中删除尾随空格和句点
- 下划线用句点扩展.旋转引号被删除,如何用引号获得它
- javascript或css:如何隐藏后面跟着句点前缀的任何数字"1.文本”"2.文本“"
- 如何提取与前面带句点(.)的同一字符串匹配的字符串?(仅使用正则表达式)
- 如何在 javascript 中使用正则表达式提取句点 (.) 之后的字符串
- 什么'这个代码只允许数字和句点,这是错误的
- 基于jquery中id(其值中有句点)属性的访问值..
- Regex表示用句点分隔的3个3位数的值
- 如何用逗号和句点分隔JavaScript字符串
- javascript是否有一个选项可以使句点与任何字符匹配,包括换行符
- 在节点快速路由中使用句点时获取 403
- SQL查询-替换字段名称中的句点
- 在访问对象属性时,括号表示法比句点表示法慢
- 电子邮件正则表达式不会验证句点后的部分
- 如何删除句点和前一个单词之间的空格
- 咕噜声:带有句点的位置 URL 应用
- 为什么句点不能在 Angular2 选择器中使用
- HTML 正则表达式验证在十进制输入上仅限制一个句点