javascript - 仅在文本框中允许中文字符和英文数字 - Javascript

标签 javascript regex reactjs unicode

以下是我的正则表达式,在文本框中仅接受中文字符和英文数字,​​但对于下面提到的某些情况,它会失败。让我知道我在这里做错了什么。

正则表达式 -

const regex = /[\u4E00-\u9FFF\u3400-\u4DFF\uF900-\uFAFF0-9]+/g

失败案例-

  • 090 阿斯法
  • 0342eq###
  • 42242442dsfsfs

React 示例代码设置 - https://codepen.io/anon/pen/dLQJKM

最佳答案

您的模式正在检查输入是否至少包含一个这样的字符。 只要有数字或汉字,它就会认为您的输入有效。

您想要查找是否有任何字符匹配此模式。为此,您只需使用 negated character class [^... 然后检查 string.match(regex) 是否为假。

const reg = /[^\u4E00-\u9FFF\u3400-\u4DFF\uF900-\uFAFF0-9]+/g;
const test = txt => {
  console.log(txt, !txt.match(reg));
};


test('090 asffa'); // false
test('0342eq###'); // false
test('42242442dsfsfs'); // false
test('foo我'); // false
test('245我吧'); // true
test('245'); // true
test('我吧'); // true

关于javascript - 仅在文本框中允许中文字符和英文数字 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55842132/

相关文章:

javascript - DOM 中相同元素的多次搜索

php - 正则表达式 - 选择具有多个大写字母的行

reactjs - 在使用第三方东西时如何保持 Browserify 包大小合理(如果重要的话通过 grunt )

javascript - 如何使用 "div"中的 "Link"使 "react-router-dom"标签可点击?

Javascript - 混淆 - 向坏人学习

javascript - JQuery 计算器数据数字不工作|让 allclear 按钮工作

c# - 正则表达式 - C# 中的 2 个字母和 2 个数字

javascript - 使用 Redux 管理视频播放器

javascript - 基于4x4矩阵计算canvas context.setTransform矩阵

php - 正则表达式是查找一行 HTML 的正确工具吗?