Javascript 无法在jQuery表单验证插件中转义反斜杠和]符号
我正在使用jQuery表单验证插件,并使用regex验证一个字段。下面是一些代码:Javascript 无法在jQuery表单验证插件中转义反斜杠和]符号,javascript,jquery,validation,Javascript,Jquery,Validation,我正在使用jQuery表单验证插件,并使用regex验证一个字段。下面是一些代码: $.validator.addMethod('regex', function(value, element, regexp) { var check = false; var re = new RegExp(regexp); return this.optional(element) || re.test(value
$.validator.addMethod('regex',
function(value, element, regexp) {
var check = false;
var re = new RegExp(regexp);
return this.optional(element) || re.test(value);
},
"" );
但是我想在这个字段中使用\
和]
符号。使用反斜杠转义这些字符没有帮助,即使使用前面提到的3或4个反斜杠也是如此
编辑
谢谢这真是我的错。我更新了regex以验证不同的符号(还有反斜杠和])
$(“#学校”).规则(“添加”、{regex:/^[a-zA-Z0-9\,!;\?\$^:\\\/`\\\\\\\\\\\/`\\\\\\\\\\\\\\\\[\]\\\\\\\\\\\\\.=-]*$/});
现在可以用了。这个应该可以用了:
“^[a-zA-Z0-9\\]\\\\]*$”
]前面的两个反斜杠在最后一个字符串中给出一个反斜杠,这个反斜杠转义]符号。
四个反斜杠在最后一个字符串中产生两个反斜杠(两个转义反斜杠),传递给RegExp构造函数的这两个反斜杠给出一个转义反斜杠
这是一个简单的演示:为什么regex:“^[a-zA-Z0-9]*$”
而不是regex://^[a-zA-Z0-9]*$/
?
<input id="school" name="school" type="text" style="float: left" />
$("#school").rules("add", { regex: "^[a-zA-Z0-9]*$"});
$("#school").rules("add", { regex: /^[a-zA-Z0-9\',!;\<>\?\$\^:\\\/`\|~&\" @#%\*\{}\(\)\[\]_\+\.\s=-]*$/ });