在JQuery表单验证正则表达式中定义空间

在JQuery表单验证正则表达式中定义空间,jquery,regex,validation,Jquery,Regex,Validation,我正在使用jQuery form validation验证表单,其中一个字段需要是四位数空格四位数,例如1234 5678 如果我用连字符替换空格,我可以让它进行验证: $.validator.addMethod("companynumber", function(value, element) { var regexp = /^[0-9]{4}[-][0-9]{4}$/; var strippedValue = value.replace(/\s/g, ''); return this.opt

我正在使用jQuery form validation验证表单,其中一个字段需要是四位数空格四位数,例如
1234 5678

如果我用连字符替换空格,我可以让它进行验证:

$.validator.addMethod("companynumber", function(value, element) {
var regexp = /^[0-9]{4}[-][0-9]{4}$/;
var strippedValue = value.replace(/\s/g, '');
return this.optional(element) || regexp.test(strippedValue);
},  "Enter a valid Company Number.");

但是找不到我需要在正则表达式中为数字块之间的单个空格添加的内容,有人能帮忙吗?

Acheong87是正确的,您可以只获得一个带有
/^[0-9]{4}[0-9]{4}$/
的空格,但看起来您在检查正则表达式之前也在剥离空格。如果希望正则表达式正确匹配,则不应使用
strippedValue
执行regexp.test

因此,类似这样的方法应该有效:

$.validator.addMethod("companynumber", function(value, element) {
var regexp = /^[0-9]{4} [0-9]{4}$/;
return this.optional(element) || regexp.test(value);
},  "Enter a valid Company Number.");

空间<代码>/^[0-9]{4}[0-9]{4}$/。(有时一件事情很明显,我们忽略了它;-)如果这个正则表达式被认为是“扩展的”,你必须逃离空间^[0-9]{4}\[0-9]{4}$或^[0-9]{4}[][0-9]{4}$,但我认为这不是问题所在。我认为你正在验证的东西中有一个连字符,否则它将不匹配(验证)对吗?我以为他说他可以用连字符进行验证。是的,我确实用连字符进行了验证-我只是用连字符检查我是否在正确的行上。我没能用空格代替连字符谢谢Andy/Acheong87-我完全忽略了strippedvalue,因为Acheong87说很容易忽略显而易见的:)