Jquery 表单验证regex.test(value)返回true,但运行时就好像它是false一样?

Jquery 表单验证regex.test(value)返回true,但运行时就好像它是false一样?,jquery,regex,validation,forms,testing,Jquery,Regex,Validation,Forms,Testing,我在这个简单的表单字段验证脚本上遇到了一个非常奇怪的小问题 我有3个字段,1个输入姓名的文本,1个输入电子邮件,1个输入评论的文本区域 基本上现在发生的情况是,如果您省略任何字段并点击submit,我将.error或.valid类分配给适当的dom对象 然而,奇怪的是,如果您遗漏了其中一个字段,例如跳过name字段,填写其他字段,点击submit,然后尝试填写名称,那么即使验证将字段值识别为通过regex(/.+/gi),它也会应用错误类,因为它将字段标记为失败 任何关于我做错了什么的想法都将不

我在这个简单的表单字段验证脚本上遇到了一个非常奇怪的小问题

我有3个字段,1个输入姓名的文本,1个输入电子邮件,1个输入评论的文本区域

基本上现在发生的情况是,如果您省略任何字段并点击submit,我将
.error
.valid
类分配给适当的dom对象

然而,奇怪的是,如果您遗漏了其中一个字段,例如跳过name字段,填写其他字段,点击submit,然后尝试填写名称,那么即使验证将字段值识别为通过regex(
/.+/gi
),它也会应用错误类,因为它将字段标记为
失败

任何关于我做错了什么的想法都将不胜感激

代码示例出现在JS Fiddle上:

注意:这个错误正在Mac上Chrome(v12.0.742.112)的链接小提琴中发生和再现

谢谢您的关注, 我期待着您的想法和建议


Jannis

这是因为
g
标志。正因为如此,你的正则表达式变得黏糊糊的。与此相同的问题:

如果在控制台中测试此代码(
regex[type].test('a')
),每次都会得到不同的结果


请在不带
g
标志的情况下重试。

太棒了!非常感谢你的评论。我不知道这是一个关键的错误:)也谢谢你的链接,很好的信息。