如何在客户端的meteor中使用autoform中的正则表达式验证字段的输入值?

时间:2017-11-14 03:25:13

标签: javascript html regex meteor meteor-autoform

我是meteor框架的新手,我正在构建一个需要在客户端使用正则表达式验证字段的表单。

schema.js

   PRODUCT_BUILD:{
    type:String,
    label:' PRODUCT_BUILD', 
    defaultValue:"PRODUCT:latest",
    regEx: /^(PRODUCT)((\/(([0-9]+\.)+[0-9]+))|(\:(latest)))/
  },

我已将信息写为

SimpleSchema.messages({
 'regEx PRODUCT_BUILD': "Can have eg: PRODUCT/10.X.X.1234 or PRODUCT:latest",
});

的test.html

 {{> afQuickField name='PRODUCT_BUILD'}}

我已输入正则表达式所需的所有字段,但是当我输入无效输入时,它不会检查正则表达式以及错误消息。
谁能告诉我我能做些什么来纠正它?

1 个答案:

答案 0 :(得分:0)

至于我记得,简单架构消息的处理方式已在最近的simple-schema / autoform版本中进行了更改。

理想情况下,它曾经是这样的(我不确定它是否适用于您的版本):

SimpleSchema.messages({
  "regEx PRODUCT_BUILD": [
    { msg: "Can have eg: PRODUCT/10.X.X.1234 or PRODUCT:latest" }
  ]
});

使用自定义字段验证的替代方法如下:

  PRODUCT_BUILD:{
    type:String,
    label:' PRODUCT_BUILD', 
    defaultValue:"PRODUCT:latest",
    custom: function(){
            if(this.value){
               // do the regex validation using normal JS
              //if validation fails,
               return "regexError"
             }
           }
  },


SimpleSchema.messages({
  "regexError":  "Can have eg: PRODUCT/10.X.X.1234 or PRODUCT:latest" 

});