CNode

请问大家中文的正则表达式用啥呀,是xregexp么?

Kkilik52发布于12 年前最后回复12 年前1 回复4268 浏览0 收藏

要使用微博那样的@功能。 然后发现javascript不支持中文regex。 用了XRegExp之后,发现有很多bug。比如以下正则表达式:

var mentionsRegex = XRegExp('(?@[\p{L}\p{N}-_]+)', 'g');

可以match @神k, 但是match不了 @k神 而且文字特别长的时候,会只匹配一部分: 例如 @Joefjfoiwenioenwoibniowenbioewiognoiergoiweoigoiewngoieriogewiogoiweg](/user/Joefjfoiwenioenwoibniowenbioewiognoiergoiweoigoiewngoieriogewiogoiweg) 只能匹配到: @Joefjfoiwenioenwoibn

还有就是无法匹配 [[[[[[[[[[[[[@fje-e](/user/fje-e)](/user/fje-e)](/user/fje-e)](/user/fje-e)](/user/fje-e)](/user/fje-e)](/user/fje-e)](/user/fje-e)](/user/fje-e)](/user/fje-e)](/user/fje-e)](/user/fje-e)](/user/fje-e),但是可以匹配 @姐夫0饿-e

感觉英文开头之后,再混中文就匹配不到了。 我看了cnodejs的源代码,似乎cndoejs是只能用英文作为用户名的。

查看回复

回复 (1)

K
kilik52#1·12 年前

哦,XRegExp没问题,是被之前的测试代码弄混了-_-

参与回复
登录后即可参与回复。登录