const reg = new RegExp('(\\w+)','g');
const match = reg.exec('颜色');
console.log(match); // null
上面的代码最后输出null,也就是不匹配。加括号是因为想把匹配到的汉字摘出来。怎么实现呢?
如从下面句子中摘出汉字'红色:绿色;感叹色!'
const reg = new RegExp('(\\w+)','g');
const match = reg.exec('颜色');
console.log(match); // null
上面的代码最后输出null,也就是不匹配。加括号是因为想把匹配到的汉字摘出来。怎么实现呢?
如从下面句子中摘出汉字'红色:绿色;感叹色!'
\w
是匹配不到汉字的,匹配汉字需要这个表达式
const reg = /[\u4e00-\u9fa5]+/;
const match = reg.exec('颜色');
console.log(match); // null
参考这篇文章,可以进一步深入学习正则:正则表达式前端使用手册。
2 回答1.3k 阅读✓ 已解决
1 回答564 阅读
1 回答558 阅读
\w
明确不支持汉字, 它等价于[A-Za-z0-9_]
你的需求可以这样解决(如果你的字符串都是这个格式):
运行结果是:
也可以这样解决:
运行结果是:
做个广告, 欢迎参与我在sf讲堂中的 一个小时学会使用正则表达式 课程 (可看回放)