Ваш диапазон классов символов для китайских символов кажется правильным, по крайней мере, из простого локального тестирования здесь. Но я вижу еще одну проблему с обоими шаблонами, заключающуюся в том, что \d
, вероятно, должен быть частью класса символов, если вы хотите разрешить использование римских цифр в обоих случаях. После внесения этого изменения укажите ширину или диапазон ширины для ввода. Предполагая, что вы хотите ширину 8, вы можете попробовать:
var reqChinesePos = /^[\u3000\u3400-\u4DBF\u4E00-\u9FFF\d]{8}$/;
var reqEnglish = /^[A-Za-z\d]{8}$/
var name1 = "大猫大猫大猫大猫";
var name2 = "JONATHAN";
var name3 = "BIGCAT大猫";
console.log(name1);
console.log(reqEnglish.test(name1));
console.log(reqChinesePos.test(name1));
console.log(name2);
console.log(reqEnglish.test(name2));
console.log(reqChinesePos.test(name2));
console.log(name3);
console.log(reqEnglish.test(name3));
console.log(reqChinesePos.test(name3));