2017-12-18 1 views
1

JOIの検証文字列は、私が検証に<a href="https://github.com/hapijs/joi" rel="nofollow noreferrer">joi</a>を使用して、次のように<strong>コメント</strong>テキストエリアの内容を検証しようとしていますに失敗し、

const schema = Joi.object().keys({ 
    firstName: Joi.string().alphanum().min(3).max(30).required(), 
    lastName: Joi.string().alphanum().min(3).max(30).required(), 
    company: Joi.string().alphanum().min(3).max(30).required(), 
    comments: Joi.string().alphanum().min(30).max(1500).required(), 
    email: Joi.string().email().required() 
}); 

しかし、誰もがコンマまたはfullstop、検証を入力した場合失敗する。これらの例外を検証にどのように追加できますか?

答えて

1

あなたはおそらく、コメント欄で何かに人々を許可したいので、私は単純に次のように、コメントの検証のためのalphanumを残して:

const schema = Joi.object().keys({ 
    firstName: Joi.string().alphanum().min(3).max(30).required(), 
    lastName: Joi.string().alphanum().min(3).max(30).required(), 
    company: Joi.string().alphanum().min(3).max(30).required(), 

    // note: no alphanum here 
    comments: Joi.string().min(30).max(1500).required(), 

    email: Joi.string().email().required() 
}); 

をあなたは本当に、本当にその意見を持っていなければならない場合あなたがregexルールを使用してに頼ることができ、文字、数字、コンマとピリオドが含まれています。

const schema = Joi.object().keys({ 
    // ... 
    comments: Joi.string().regex(/^[,. a-z0-9]+$/).required(), 
    // ... 
}); 
0

あなたは英数字プラスカンマが含まれる正規表現を使用することができます。私はあなたが何を意味するかわからないフルストップ btw。

Joi.string().regex(/^[a-zA-Z0-9, ]*$/, 'Alphanumerics, space and comma characters').min(3).max(30).required() 

これは、文字通り、範囲a-z、A-Z、0-9、およびスペースとカンマの文字にのみ一致します。追加する必要があるもの(ピリオド文字、かっこ、括弧など)は何ですか?

ソースはJoi API docsです。

0

あなたは、単に同じ comments: Joi.string().regex(/^[a-zA-Z0-9,. ]*$/).min(3).max(30).required()

のための正規表現構文を使用することができます
関連する問題

 関連する問題