我试图让英文字母,数字值只有下列字符:正则表达式字母数字和一些某些特殊字符
- # $ % & * () [ ] , ./- _ +
我设法想出下面的代码
<form id="accountForm" action="">
<input type="text" name="my_input">
</form>
$(function() {
$.validator.addMethod("accept", function(value, element, param) {
return value.match(new RegExp("." + param + "$"));
}, 'Only English is allowed');
$("#accountForm").validate({
rules: {
my_input : {
required: true,
accept: '[[email protected]%#&()/+*$,._\\-]+$'
}
}
});
});
但也存在一些问题:
- 如果我尝试添加
[ ]
代码完全停止工作 - 如果我添加其他字符或不在上面的列表中,在任何字母后它不显示任何错误消息。例如:ABC你好
- 如果我输入一个字母,它会给出一个错误。
这里是我的代码演示:https://jsfiddle.net/w2p1rdbd/1/
能否请你告诉我怎么解决这个问题?
非常感谢!
为什么你要在accept方法中操作正则表达式('new RegExp(“。”+ param +“$”)')?您将以'。[a-zA-Z0-9 @%#&()/+*$,._\--] + $$'作为正则表达式。我在你的例子中删除了'.'和'$',添加了'^'并且它似乎正在工作。 [检查此](https://jsfiddle.net/w2p1rdbd/2/)。 – ClasG