Unicode 1.0版提供了20,916个汉字,基本满足了日常的使用。在后续的版本又分别新增了 扩展A区汉字,扩展B区汉字,扩展C区汉字,扩展D区汉字等等
之前使用的 [\u4E00-\u9FA5]/
正则来验证是否是汉字无法满足扩展后汉字的验证。
JS新的验证汉字的正则如下:
const REGEX_CHINESE = /[\u4e00-\u9fff]|[\u3400-\u4dbf]|[\u{20000}-\u{2a6df}]|[\u{2a700}-\u{2b73f}]|[\u{2b740}-\u{2b81f}]|[\u{2b820}-\u{2ceaf}]|[\uf900-\ufaff]|[\u3300-\u33ff]|[\ufe30-\ufe4f]|[\uf900-\ufaff]|[\u{2f800}-\u{2fa1f}]/u;
const hasChinese = (str) => REGEX_CHINESE.test(str);
网友评论