要使用微博那样的@功能。 然后发现javascript不支持中文regex。 用了XRegExp之后,发现有很多bug。比如以下正则表达式:
var mentionsRegex = XRegExp('(?<mention>@[\p{L}\p{N}-_]+)', ‘g’);
可以match @神k, 但是match不了 [[[[[[[[[[[@k](/user/k)](/user/k)](/user/k)](/user/k)](/user/k)](/user/k)](/user/k)](/user/k)](/user/k)](/user/k)](/user/k)神 而且文字特别长的时候,会只匹配一部分: 例如 [[[[[[[[[[[[[[[[[[[[[[[[[[[@Joefjfoiwenioenwoibn](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)iowenbioewiognoiergoiweoigoiewngoieriogewiogoiweg](/user/Joefjfoiwenioenwoibniowenbioewiognoiergoiweoigoiewngoieriogewiogoiweg) 只能匹配到: [[[[[[[[[[[[[[[[[[[[[[[[[[@Joefjfoiwenioenwoibn](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/Joefjfoiwenioenwoibn)](/user/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是只能用英文作为用户名的。