关于前端:Ant-Design-常见用法与坑点总结三Input-内容去除前后空格

4次阅读

共计 1412 个字符,预计需要花费 4 分钟才能阅读完成。

前言

Ant Design 是蚂蚁出品的杰出优良的 React 组件库,置信应用 React 进行管理系统开发的小伙伴们或多或少都接触过 Ant Design。很多公司基于 React 开发的治理端系统也都是应用 Ant Design 的组件库。

因而,理解 Ant Design 的常见用法与坑点还是有必要的。

本系列文章针对 Ant Design 一些官网文档虽有提及,然而容易被疏忽的,又比拟重要常见的用法进行总结。同时对工作应用过程当中遇到的坑点进行演绎。

tip:文章应用的 4.x 版本的 Ant Design。

上一篇:Ant Design 常见用法与坑点总结(二):Form 表单下拉框设置初始值

Input 输入框内容去除头尾空白

在填写 Form 表单时,咱们往往会遇到这样的需要:Input 输入框输出的内容头尾不容许带有空格。有点相似于 trim() 办法的性能。

针对这个性能,整体上有 3 中实现思路:

  • 在输出的过程中,禁止输出空白符
  • 利用表单验证,如果头尾存在空格,则提醒用户
  • 提交表单时,主动去除头尾空白,用户无感

思路一:禁止输出空格

该形式利用 Form.ItemgetValueFromEvent 属性,这个属性能够设置如何把输出的内容转换为表单项理论获取的值。须要传入一个函数。

<Form.Item
  name="city"
  label="城市"
  getValueFromEvent={(e) => e.target.value.replace(/(^\s*)|(\s*$)/g, '')}
  // getValueFromEvent={(e) => {console.log(e.target); return e.target.value; }}
>
  <Input />
</Form.Item>

在上述代码中,e.target.value 即为输入框输出的值,而 Form.Item 表单项理论获取到的值是 e.target.value.replace(/(^\s*)|(\s*$)/g, '')

这种办法在页面交互上体现为用户无奈输出空格,其实用户体验并不敌对,让人感觉更像是这个输入框有 bug,居然不让我输出空格。

思路二:利用表单验证

应用 第一篇文章 提到的表单验证办法。

<Form.Item
  name="city"
  label="城市"
  rules={[{ pattern: /(^\S)((.)*\S)?(\S*$)/, message: '前后不能有空格' }
  ]}
>
  <Input />
</Form.Item>
<Form.Item
  name="city"
  label="城市"
  rules={[
    {validator: (_, value) => {const reg = /(^\s+)|(\s+$)/;
        if(reg.test(value)) {return Promise.reject(new Error('前后不能有空格'));
        }
        return Promise.resolve();}
    }
  ]}
>
  <Input />
</Form.Item>

这里就体现出了自定义表单验证的劣势,写法灵便,且在某些场景下能升高思考难度。/(^\s+)|(\s+$)//(^\S)((.)*\S)?(\S*$)/ 这两个正则,显然前者更容易写进去,前面这个不查半天材料都难写。

思路三:提交表单调用 trim() 办法

这种办法就是轻易用户输出,在提交表单的时候再应用 trim() 办法去除前后空格。

然而既然设置了这个规定,还是有必要让用户晓得,给用户提醒,因而综合下来第二种办法是比拟举荐的解决办法。

正文完
 0