快速验证器的isAlpha()函数中存在空格问题

xdnvmnnf  于 2022-10-04  发布在  Go
关注(0)|答案(2)|浏览(122)

我在我的项目中使用了快速验证器我来自客户端的json是

{"name": "john doe"}

我的快速验证码是

[check('name', 'invalid name').isAlpha()]

为什么此代码返回无效名称,而这是一个字符串。我还尝试了isString(),但也不起作用,它的工作方式与isAlpha()相同。错误json对客户端的响应为

{
"errors": [
    {
        "value": "john doe",
        "msg": "invalid name",
        "param": "name",
        "location": "body"
    }
]
}

isAlpha()函数是否只将一个单词视为字符串

我如何解决这个问题

wtlkbnrh

wtlkbnrh1#

您可以使用.isAlpha选项忽略空格:

check('name', 'invalid name').isAlpha('en-US', {ignore: ' '})

第一个参数‘en-US’是AlphaLocale。例如,我使用‘es-es’来验证西班牙语特殊字符。您可以使用其中一种语言来验证其他语言:‘ar’|‘ar-AE’|‘ar-BH’|‘ar-DZ’|‘ar-EG’|‘ar-IQ’|‘ar-JO’|‘ar-KW’|‘ar-Lb’|‘ar-LY’|‘ar-MA’|‘ar-QA’|‘ar-QM’|‘ar-SA’|‘ar-SD’|‘ar-sy’|‘ar-TN’|‘ar-Ye’|‘az-AZ‘|’BG-BG‘|’cs-CZ‘|’da-DK‘|’de-DE‘|’el-GR‘|’en-AU‘|’en-GB‘|’en-HK‘|’en-IN‘|’en-NZ‘|’en-US‘|’en-Za‘|’en-ZM‘|’es-es‘|’fa-AF‘|’fa-IR‘|’fr-FR‘|’he‘|’Hu-Hu‘|’id-ID‘|’it-IT‘|’ku-iq‘|’nb-no‘|’nl-nl‘|’nn-no‘|’pl-pl‘|’pt-BR‘|’pt-pt‘|’ru-RU‘|’SK-SK‘|’sl-SI‘|’sr-RS‘|’sr-RS@拉丁语‘|’sv-se‘|’th-th‘|’tr-tr‘|’UK-UA‘|’vi-VN‘。

第二个参数是对象IsAlphaOptions。它只包含一个可选参数‘Ignore’,并且它的值可以是字符串、字符串[]或RegExp。因此,您还可以使用RegExp忽略空格。

.isAlpha('en-US', {ignore: 's'})
zc0qhyus

zc0qhyus2#

我知道答案了。我使用了定制的验证方法。它解决了我的问题。

[check('name').custom((value,{req})=>{
                if(isNaN(value)){
                    return true;
                }else{
                    throw new Error('invalid name')
                }
 })]

相关问题