前端基础-匹配中文(utf-8编码)

2020-03-26 16:17:30 浏览数 (1)

第5章 匹配中文(utf-8编码)

每个字符(中文、英文字母、数字、各种符号、拉丁文、韩文、日文等)都对应着一个Unicode编码。

查看Unicode编码,找到中文的部分,然后获取中文的Unicode编码的区间,就可以用正则匹配了。

前面我们用[a-z]表示小写字母,[0-9]表示数字,这就是一个范围表示,如果有一个数x能够表示第一个中文,有一个数y能够表示最后一个中文,那么[x-y]就可以表示所有的中文了。

中文的Unicode编码从4E00开始,到9FA5结束。

[u4E00-u9FA5]这个区间就能够表示中文。

完整的Unicode编码表:http://blog.csdn.net/hherima/article/details/9045861

代码语言:javascript复制
	var str = "你好,世界";
	var res = str.match(/[u4E00-u9FA5]/g);
	console.log(res);//["你", "好", "世", "界"]

案例二

解决结巴程序

把“今今今天晚晚晚晚晚晚上吃吃吃吃吃吃鸡”字符串换成单字的形式,即“今天晚上吃鸡”;

核心思想:匹配到重复的字符时,保留一个。

代码语言:javascript复制
	var str = "今今今天晚晚晚晚晚晚上吃吃吃吃吃吃鸡";
	//今天晚上吃鸡
	var res = str.replace(/([u4E00-u9FA5])1 /g, '$1');
	console.log(res);

0 人点赞