问题描述
||
我正在尝试使用RegEx来确保用户不要在要创建的文件夹名称中放置任何非法的Windows字符(是的,在创建该文件夹之前,我还要检查服务器端),并且喜欢使用JQuery \的Validate插件(http://docs.jquery.com/Plugins/Validation/)来执行此操作,但是所有RegEx示例似乎都指向我确保用户输入MATCHES,而不是不匹配。谁能指出我做错了正确的方向?谢谢!
这是我的JQuery代码(具有讽刺意味的是,它的工作方式相反-如果我输入一个非法字符,就可以了,但是如果我将其取出,它会触发验证):
$(document).ready(function() {
$.validator.addMethod(
\"regex\",function(value,element) {
return this.optional(element) || /:|\\?|\\\\|\\*|\\\"|<|>|\\||%/g.test(value);
},\"Asserter Names Cannot Contain Certain Characters.\");
$(\'#matterDetail\').validate({
debug: true,rules: {
\"Asserter\": {
required: true,regex: true,minlength: 2
}
}
});
});
我从这里获得了正则表达式规则:http://RegExr.com?2rj55
解决方法
您可以使用!()来逆转规则...
return this.optional(element) || !(/:|\\?|\\\\|\\*|\\\"|<|>|\\||%/g.test(value));