tim*_*kay 5 regex jquery jquery-validate
我正在尝试(并且失败)编写一个正则表达式语句,在我的Javascript表单验证中检查特殊字符,例如!@#$%^&*()_ + <>?'"{} [].
据我所知,这可能已被问过1000次,但我受到了一些严重的时间压力.如果您不想回答下面的问题,并且您能够指出我前面回答上述问题的方向,我将非常感激.
在类似的说明中,任何人都可以告诉我为什么当我输入小写的'abc'等时出现以下错误?我很困惑.
jQuery.validator.addMethod("specialChars", function( value, element ) {
var regex = new RegExp("^[a-zA-Z0-9]+$");
var key = String.fromCharCode(event.charCode ? event.which : event.charCode);
if (!regex.test(key)) {
event.preventDefault();
return false;
}
}, "please use only alphanumeric or alphabetic characters");
Run Code Online (Sandbox Code Playgroud)
Spa*_*rky 31
不是从头开始编写自己的自定义方法,而是包含additional-methods.js文件并使用alphanumeric规则.
$(document).ready(function () {
$('#myform').validate({
rules: {
field: {
alphanumeric: true
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
演示:http: //jsfiddle.net/YsAKx/
如果您不想包含其他外部文件,只需复制默认alphanumeric方法即可...
jQuery.validator.addMethod("alphanumeric", function(value, element) {
return this.optional(element) || /^\w+$/i.test(value);
}, "Letters, numbers, and underscores only please");
Run Code Online (Sandbox Code Playgroud)
几乎没有变化
jQuery.validator.addMethod("specialChars", function( value, element ) {
var regex = new RegExp("^[a-zA-Z0-9]+$");
var key = value;
if (!regex.test(key)) {
return false;
}
return true;
}, "please use only alphanumeric or alphabetic characters");
Run Code Online (Sandbox Code Playgroud)
event.preventDefault(),必须在keypress事件中完成.演示:小提琴
注意:由于您使用的是+Wild char,因此文本框中至少需要一个字符,您可能希望使用该required规则将其拆分为两个规则并将wild char更改为*.