首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Javascript正则表达式匹配重音字符

使用Javascript正则表达式匹配重音字符
EN

Stack Overflow用户
提问于 2011-03-26 02:50:12
回答 6查看 51K关注 0票数 56

这是我今天遇到的一个有趣的片段:

代码语言:javascript
复制
/\ba/.test("a") --> true
/\bà/.test("à") --> false

然而,

代码语言:javascript
复制
/à/.test("à") --> true

首先,wtf?

其次,如果我想匹配单词开头的重音字符,我该怎么做呢?(我真的希望避免使用像/(?:^|\s|'|\(\) ....这样的过度选择器)

EN

回答 6

Stack Overflow用户

发布于 2012-07-19 05:42:03

这对我很有效:

代码语言:javascript
复制
/^[a-z\u00E0-\u00FC]+$/i

here的帮助下

票数 67
EN

Stack Overflow用户

发布于 2011-03-26 03:03:09

/\bà/.test("à")不匹配的原因是因为"à“不是单词字符。转义序列\b仅在单词字符的边界和非单词字符之间匹配。/\ba/.test("a")匹配是因为"a“是一个单词字符。因此,在字符串的开头(不是单词字符)和字母"a“(单词字符)之间存在边界。

JavaScript正则表达式中的单词字符被定义为[a-zA-Z0-9_]

要匹配字符串开头的重音字符,只需在正则表达式的开头使用^字符(例如/^à/)。该字符表示字符串的开头(不像\b,它匹配字符串中的任何单词边界)。它是最基本和最标准的正则表达式,所以它绝对不会过分。

票数 40
EN

Stack Overflow用户

发布于 2011-03-26 07:15:16

堆栈溢出在正则表达式中也有一个非ASCII字符的问题,你可以找到它的here。它们不是在处理单词边界,但可能会给你一些有用的提示。

还有另一个page,但他希望匹配字符串,而不是单词。

我不知道,现在也没有找到解决你的问题的锚,但当我看到我的第一个链接中使用了什么怪物正则表达式时,你想要避免的组并不过分,我认为你的解决方案并不过分。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5436824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档