首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Joi验证字符串().trim()不起作用

Joi是一个流行的Node.js库,用于验证和验证数据。它提供了一种简单且强大的方式来定义和应用数据验证规则。在这个问题中,我们讨论的是Joi验证字符串时.trim()方法不起作用的情况。

.trim()方法是JavaScript字符串对象的内置方法,用于去除字符串两端的空格。然而,在Joi验证中,.trim()方法不会直接起作用,因为Joi验证器本身不会修改原始数据。相反,它会返回一个新的验证结果对象,其中包含验证后的数据。

要在Joi验证中应用.trim()方法,可以使用Joi.string().trim()来定义验证规则。这将告诉Joi在验证字符串之前先应用.trim()方法。以下是一个示例:

代码语言:txt
复制
const Joi = require('joi');

const schema = Joi.object({
  name: Joi.string().trim().required()
});

const data = {
  name: '  John Doe  '
};

const result = schema.validate(data);
console.log(result.value.name); // 输出:'John Doe'

在上面的示例中,我们定义了一个包含名字属性的Joi验证规则。通过在Joi.string()后面添加.trim(),我们告诉Joi在验证之前先应用.trim()方法。当我们验证包含前后空格的名字时,Joi会自动去除这些空格,并返回验证后的数据。

需要注意的是,Joi验证器是链式调用的,可以根据需要添加其他验证规则和方法。例如,可以使用.required()方法来指定该属性为必需的,或使用.min()和.max()方法来指定字符串的最小和最大长度。

总结起来,Joi验证字符串时可以通过在Joi.string()后面添加.trim()方法来应用.trim()操作。这样可以确保在验证之前去除字符串两端的空格。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用joi验证数据模型

我们用nodejs实现一些功能时,往往需要对用户输入的数据进行验证。...然而,验证是一件麻烦的事情,很有可能你需要验证数据类型,长度,特定规则等等,在前端做表单验证时,我们常用的做法是使用正则,正则表达式也许可以一步到位,但是他只会给你true or false,如果想要知道数据不符合哪些条件时...('isA', 'isB') .or('isA', 'isB'); 以上scheme配置大致意思如下: username: 字符串类型,长度在3至30之间,必填。...isA: 布尔类型,可选 AVal: 数字类型, 可选 isB: 布尔类型, 可选 BVal: 字符串类型, 可选 with(‘isA’, ‘AVal’) //意思是,isA 和 AVal 这两字段如果填写了...(), Joi.date(), Joi.func(), Joi.number(), Joi.object(), Joi.string() 更多玩法 数字 + 特定的字符串Joi.number().allow

1.1K10
  • 使用joi验证数据模型

    我们用nodejs实现一些功能时,往往需要对用户输入的数据进行验证。...然而,验证是一件麻烦的事情,很有可能你需要验证数据类型,长度,特定规则等等,在前端做表单验证时,我们常用的做法是使用正则,正则表达式也许可以一步到位,但是他只会给你true or false,如果想要知道数据不符合哪些条件时...('isA', 'isB') .or('isA', 'isB'); 以上scheme配置大致意思如下: username: 字符串类型,长度在3至30之间,必填。...isA: 布尔类型,可选 AVal: 数字类型, 可选 isB: 布尔类型, 可选 BVal: 字符串类型, 可选 with('isA', 'AVal') //意思是,isA 和 AVal 这两字段如果填写了...(), Joi.date(), Joi.func(), Joi.number(), Joi.object(), Joi.string() 更多玩法 数字 + 特定的字符串Joi.number().allow

    2.6K00

    使用joi验证数据模型

    本文作者:IMWeb zzbozheng 原文出处:IMWeb社区 未经同意,禁止转载 我们用nodejs实现一些功能时,往往需要对用户输入的数据进行验证。...然而,验证是一件麻烦的事情,很有可能你需要验证数据类型,长度,特定规则等等,在前端做表单验证时,我们常用的做法是使用正则,正则表达式也许可以一步到位,但是他只会给你true or false,如果想要知道数据不符合哪些条件时...('isA', 'isB') .or('isA', 'isB'); 以上scheme配置大致意思如下: username: 字符串类型,长度在3至30之间,必填。...isA: 布尔类型,可选 AVal: 数字类型, 可选 isB: 布尔类型, 可选 BVal: 字符串类型, 可选 with('isA', 'AVal') //意思是,isA 和 AVal 这两字段如果填写了...(), Joi.date(), Joi.func(), Joi.number(), Joi.object(), Joi.string() 更多玩法 数字 + 特定的字符串Joi.number().allow

    1.2K50

    校验数据结构调研

    它支持从字符串或文件中加载模式,并且包含许多有用的验证器和错误消息。 joi:是一个强大的库,支持校验 JavaScript 对象、字符串和数字等。...joi也有很高的知名度,拥有超过19.8k的星和7.6m的npm周下载量。 用法 ajv主要用于验证JSON数据的结构,但也支持异步验证、关联和关键字验证等高级功能。...相比之下,joi更适合于验证JavaScript对象、字符串和数字等数据类型,但它的API设计非常直观,可以轻松地定义和验证复杂的数据结构。...API设计 ajv的API设计比joi复杂一些,但它支持一些joi没有的高级功能,例如异步验证和关联验证joi的API设计非常直观,易于使用,并且可以轻松地定义和验证复杂的数据结构。...如果主要需要验证JSON数据的结构且考虑性能,那么ajv可能是更好的选择。如果需要验证JavaScript对象、字符串和数字等更多的数据类型,那么joi可能是更好的选择。

    77720

    常用验证码之字符串验证

    作用: 防止恶意破解密码、刷票、论坛灌水等; 有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试 敏感操作前的提示 防止恶意注册 验证码表现方式: 随机字符串验证码 算数验证码...Gif动画验证码 滑动验证码 点选验证码 短信验证码 手机语音验证码 接下来会使用纯前端方式实现其中的一些表现,如随机字符串验证码、算数验证码、滑动验证码等。...本篇记录随机字符串验证码。 ? 随机字符串验证码 一般来讲,字符串、算数、gif、短信语音等验证码放在后端实现,但本着技术无界限的原则,前端依然是能照葫芦画瓢给实现出来的。...分析 验证码实现步骤: canvas画布 生成随机字符串 随机颜色 背景色(可固定色) 噪音线设置 绘制验证码 其他一些基础内容也包含其中,如点击验证码刷新、点击下一步验证等操作。...开始绘制 方法接收一个dom对象 判断浏览器对canvas支持程度 取随机字符串 设置canvas宽高大小 绘制 具体过程如下: // 验证码图片绘制 drawCode(domCvs) { let

    2.6K30

    Java替换指定字符串前后的指定字符(类似于String的trim()方法)

    参考链接: Java字符串之-trim() Java替换字符串前后的指定字符(类似于String的trim()方法)  想到了替换字符串或者正则表达式,但是没想到怎么实现! ...++++"; //传字符 System.out.println(str.replace('+',' ').trim().replace(' ', '+')); //或传字符串 //System.out.println...(str.replace("+"," ").trim().replace(" ", "+"));  方法2:  JDK自带的trim方法:  public String trim() {        ...substring(st, len) : this;     }  参考上面JDK自带的trim方法,实现如下:  public static String custom_trim(String str...str.substring(st, len): str;     }  完整实例如下:  /**  * 自定义字符串修剪方法  * Created by ylchou@foxmail.com on 18

    1.8K40
    领券