You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS中匹配以重音字符结尾的单词问题求助

解决JS正则匹配以重音字符结尾单词的问题

原代码的问题在于\w仅匹配ASCII字母、数字和下划线,无法识别带重音的Unicode字母,导致正则在遇到重音字符时提前截断,只能匹配到单词的前半部分(比如ré、faç)。同时,\b作为单词边界,是基于\w的规则判断,对非ASCII字符的边界识别不准确。

修正方案

使用Unicode属性类\p{L}匹配所有Unicode字母(包括带重音的),并配合环视断言替代\b来准确判断单词边界,同时开启正则的u(Unicode)模式。

匹配以重音字符结尾的单词

const text = 'aztec, résumé, façade, and azure';
const words = text.match(/(?<!\p{L})\p{L}*[éèêëáàâäíìîïóòôöúùûüç](?!\p{L})/gu);
console.log(words); // 输出: ["résumé"]

若需求为包含重音字符的单词(非仅结尾)

如果实际需要找出所有包含重音字符的单词,可调整正则如下:

const text = 'aztec, résumé, façade, and azure';
const words = text.match(/(?<!\p{L})\p{L}*[éèêëáàâäíìîïóòôöúùûüç]\p{L}*(?!\p{L})/gu);
console.log(words); // 输出: ["résumé", "façade"]

内容的提问来源于stack exchange,提问作者MarioCha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 11:45:04