Ваш шаблон проверяет, содержит ли ввод хотя бы один такой символ.
Пока будет либо число, либо китайский символ, он будет считать ваш ввод действительным.
Вам нужно найти, есть ли какой-либо символ, который не соответствует этому шаблону. Для этого вам просто нужно использовать класс отрицательных символов [^...
и затем проверить, является ли 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