javascript 正则表达式 匹配中文

笔记2024-04-272 人已阅来源:网络

Javascript 正则表达式可以用于匹配中文字符。在进行中文匹配时,需要设置正则表达式的 unicode 标志(u),以便正确匹配中文字符。下面我们详细介绍如何使用 Javascript 正则表达式进行中文匹配。

首先,我们来举个例子。假设我们要匹配一个字符串中所有的汉字,代码如下:

let str = "中文123ABC汉字";
let reg = /[\u4e00-\u9fa5]/gu;
let res = str.match(reg);
console.log(res); // ["中", "文", "汉", "字"]

在上面的代码中,我们使用了一个正则表达式 /[\u4e00-\u9fa5]/gu,其中 [\u4e00-\u9fa5] 表示匹配所有的中文字符,u 标志表示使用 unicode 模式,g 标志表示匹配所有符合条件的字符。

除了匹配所有汉字,我们还可以匹配中文字符串中的数字和英文字母,代码如下:

let str = "中文123ABC汉字";
let reg = /[\u4e00-\u9fa5a-zA-Z0-9]/gu;
let res = str.match(reg);
console.log(res); // ["中", "文", "1", "2", "3", "A", "B", "C", "汉", "字"]

在上面的代码中,我们使用了一个正则表达式 /[\u4e00-\u9fa5a-zA-Z0-9]/gu,其中 [\u4e00-\u9fa5] 表示匹配所有的中文字符,a-zA-Z0-9 表示匹配所有的数字和英文字母。

除了匹配字符外,我们还可以匹配中文字符串中的单词,代码如下:

let str = "我爱中国,中国爱我";
let reg = /[\u4e00-\u9fa5\w]+/gu;
let res = str.match(reg);
console.log(res); // ["我爱中国", "中国爱我"]

在上面的代码中,我们使用了一个正则表达式 /[\u4e00-\u9fa5\w]+/gu,其中 [\u4e00-\u9fa5] 表示匹配所有的中文字符,\w 表示匹配所有的单词字符(包括字母、数字和下划线),+ 表示匹配一个或多个字符。

最后,我们还可以使用正则表达式取代中文字符串中的某个字符,代码如下:

let str = "我是中国人,我骄傲!";
let reg = /中国/gu;
let res = str.replace(reg, "中华人民共和国");
console.log(res); // "我是中华人民共和国人,我骄傲!"

在上面的代码中,我们使用了一个正则表达式 /中国/gu,其中 g 标志表示匹配所有符合条件的字符。在调用 replace 方法时,我们把匹配到的字符串 "中国" 替换成了 "中华人民共和国"。

以上就是 Javascript 正则表达式匹配中文的一些常用操作。通过这些操作,我们可以比较方便的处理中文字符串。