首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript正则表达式和日语符号

问Javascript正则表达式和日语符号
EN

Stack Overflow用户
提问于 2011-10-26 16:52:00
回答 2查看 2.3K关注 0票数 4

我使用string对象的search()方法查找正则表达式和字符串之间的匹配。

它可以很好地处理英文单词:

代码语言:javascript
复制
"google".search(/\bg/g) // return 0

但此代码不适用于日语字符串:

代码语言:javascript
复制
"アイスランド語".search(/\bア/g) // return -1

如何更改正则表达式以查找日语字符串和正则表达式之间的匹配?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-26 17:05:53

不幸的是,Javascript是一个“仅限ASCII”的正则表达式。不支持Unicode (我的意思是Unicode非ASCII字符没有“分成类”)。例如,\d仅为0-9 )。如果需要在Javascript中使用高级正则表达式(Unicode正则表达式),可以尝试使用http://xregexp.com/

我们甚至不会深入研究代理对的问题。Javascript中的字符是一个UTF-16点,因此它并不总是一个“完整的”Unicode字符。幸运的是,日语应该完全在BMP中(但请注意,Han unification在平面2中,因此每个字符都是2xUTF-16字符)

如果你想读一些关于Unicode的东西,你可以从Wiki Mapping of Unicode characters开始。

票数 4
EN

Stack Overflow用户

发布于 2011-10-26 16:58:54

问题出在\b上。因为\b仅匹配:

如果第一个字符是单词,并且字符串中的最后一个字符是单词,并且字符串中有两个字符,其中一个是单词字符,另一个不是单词字符,则返回

  • 。

(请参阅:http://www.regular-expressions.info/wordboundaries.html)

在JavaScript中,单词字符是字符类[a-zA-Z0-9_] (ref /单词边界/ ECMA = ASCII)。

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

https://stackoverflow.com/questions/7900539

复制
相关文章

相似问题

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