2017-11-14 1 views
0

ich bin neu in Meteor Framework und ich bin ein Formular erstellen, die Validierung von Feldern mit regulären Ausdruck in Client-Seite benötigt.
Wie validiere ich den Input-Wert eines Feldes mit Hilfe eines regulären Ausdrucks in Autoform in Meteor auf der Client-Seite?

schema.js

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

Ich habe die Nachricht als

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

test.html

{{> afQuickField name='PRODUCT_BUILD'}} 

I hav geschrieben Ich habe alle Felder eingegeben, die Regex benötigt, aber wenn ich die ungültige Eingabe gebe, überprüft es nicht die Regex und auch die Fehlermeldung.
Kann mir jemand sagen, was ich tun kann, um es zu korrigieren?

Antwort

0

Soweit ich mich erinnere, wurde die Art, wie einfache Schema-Nachrichten behandelt werden, in den letzten Versionen von Simple-Schema/Autoform geändert.

Idealerweise verwendet es so etwas zu sein (was ich nicht sicher bin, ob es auf Ihrer Version funktionieren wird):

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

Es ist eine alternative Methode benutzerdefinierte Feldvalidierung wie unten verwenden:

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" 

}); 
Verwandte Themen