JS
const reg = /^[\u4e00-\u9fa5]$/;
var keyword = "大";
if(reg.test(keyword) == false){
alert('只能是单个汉字');
}
PHP
$zi = '中国';
if(!preg_match('/^[\x{4e00}-\x{9fa5}]$/u', $zi)){
exit('只能是单个汉字');
}
上面的正则 有些字匹配不了,比如:㧟
/^[\x{3400}-\x{9fff}]$/u
汉字在Unicode编码表中大体位于\u4e00至\u9fff之间,包括了常用汉字及简体字,而繁体字位于\u3400至\u4dbf之间。
合并这两个范围,可以匹配大部分汉字,包括简体和繁体。