react中antd文本框限制输入中文方式

 更新时间:2023年06月29日 11:22:23   作者:w晚风  
这篇文章主要介绍了react中antd文本框限制输入中文方式详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

方式一:

使用 replace 方法和正则表达式 /[^\u4e00-\u9fa5]/g 来过滤掉了输入字符串中的非中文字符。然后再对过滤后的字符进行正则验证,如果符合要求则更新状态值

import React, { useState, useEffect } from 'react';
import { Input } from 'antd';
const ChineseInput = () => {
  const [value, setValue] = useState('');
  const handleInputChange = e => {
    const reg = /[\u4e00-\u9fa5]/g; // 只允许中文字符
    const inputValue = e.target.value.replace(/[^\u4e00-\u9fa5]/g, ''); // 过滤掉输入的非中文字符
    if (reg.test(inputValue)) {
      setValue(inputValue);
    }
    else{
      setValue('');
    }
  };
  return <Input value={value} onChange={handleInputChange} />;
};
export default ChineseInput;

方式二:

将 value 属性的值与实际输入值进行分离处理

增加了一个名为 displayValue 的新状态,用于控制输入框的显示值。在handleInputChange方法中,将输入框的实际值 inputValue 赋值给 value 状态,并将其也赋值给 displayValue 状态。如果输入的值不符合要求,将使用 e.target.value 替代它,以便让用户看到未被过滤的实际输入值。

另外,还实现了一个名为 handleInputBlur 的新方法。该方法在输入框失去焦点时被触发,将 displayValue 的值更新为正确的 value 状态值。

import React, { useState } from 'react';
import { Input } from 'antd';
const ChineseInput = () => {
  const [value, setValue] = useState('');
  const [displayValue, setDisplayValue] = useState('');
  const handleInputChange = e => {
    const reg = /[\u4e00-\u9fa5]/g;
    const inputValue = e.target.value.replace(/[^\u4e00-\u9fa5]/g, '');
    if (reg.test(inputValue)) {
      setValue(inputValue);
      setDisplayValue(inputValue);
    } else {
      setDisplayValue(e.target.value);
    }
  };
  const handleInputBlur = () => {
    setDisplayValue(value);
  };
  return <Input value={displayValue} onChange={handleInputChange} onBlur={handleInputBlur} />;
};
export default ChineseInput;

不足:以上两个方法都有个弊端,第二次输入中文后会把之前的删除掉

以上就是react中antd文本框限制输入中文方式的详细内容,更多关于react antd文本框输入限制的资料请关注脚本之家其它相关文章!

相关文章

  • react框架next.js学习之API 路由篇详解

    react框架next.js学习之API 路由篇详解

    这篇文章主要为大家介绍了react框架next.js学习之API 路由篇详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • React四级菜单的实现

    React四级菜单的实现

    本文主要介绍了React四级菜单的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • 如何强制刷新react hooks组件

    如何强制刷新react hooks组件

    这篇文章主要介绍了如何强制刷新react hooks组件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 关于antd tree和父子组件之间的传值问题(react 总结)

    关于antd tree和父子组件之间的传值问题(react 总结)

    这篇文章主要介绍了关于antd tree 和父子组件之间的传值问题,是小编给大家总结的一些react知识点,本文通过一个项目需求实例代码详解给大家介绍的非常详细,需要的朋友可以参考下
    2021-06-06
  • React实现音频文件上传与试听

    React实现音频文件上传与试听

    本文主要介绍了React实现音频文件上传与试听,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-09-09
  • 高性能React开发React Server Components详解

    高性能React开发React Server Components详解

    ReactServerComponents通过服务器端渲染、自动代码分割等技术,实现了高性能的React开发,它解决了客户端数据请求链式延迟、敏感数据暴露风险等问题,提供了更好的用户体验和安全性,本文介绍高性能React开发React Server Components详解,感兴趣的朋友一起看看吧
    2025-03-03
  • React类组件和函数组件的所有核心区别及说明

    React类组件和函数组件的所有核心区别及说明

    这篇文章主要介绍了React类组件和函数组件的所有核心区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2026-03-03
  • React中Portals与错误边界处理实现

    React中Portals与错误边界处理实现

    本文主要介绍了React中Portals与错误边界处理实现,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07
  • 关于useEffect的第二个参数解读

    关于useEffect的第二个参数解读

    这篇文章主要介绍了关于useEffect的第二个参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • React jsx文件介绍与使用方式

    React jsx文件介绍与使用方式

    这篇文章主要介绍了React jsx文件介绍与使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03

最新评论