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