请问大家中文的正则表达式用啥呀,是xregexp么?
发布于 11 年前 作者 kilik52 4145 次预览 最后一次回复是 11 年前 来自
要使用微博那样的@功能。 然后发现javascript不支持中文regex。 用了XRegExp之后,发现有很多bug。比如以下正则表达式:
var mentionsRegex = XRegExp(’(?<mention>@[\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 回复
哦,XRegExp没问题,是被之前的测试代码弄混了-_-