JavaScript - 使用正则表达式匹配非ascii符号

时间:2015-04-20 14:58:15

标签: javascript regex utf non-ascii-characters

我想在评论中匹配所有提及的用户。例如:



var comment = '@Agneš, @Petar, please take a look at this';
var mentionedUsers = comment.match(/@\w+/g);

console.log(mentionedUsers)




我期待["@Agneš", "@Petar"],但获得["@Agne", "@Petar"]。如您所见,š符号不匹配。

如何匹配所有字母符号包括非ascii?

2 个答案:

答案 0 :(得分:4)

在实施ES6对正则表达式中unicode的支持之前,您可以通过以下方式解决这个问题:

/@[^\s,]+/g

您只需在用户名中列出无法的内容。明年,

/@\w+/gu

确保您不会获得一半电子邮件地址的方法以及@在一个单词中间的其他情况将是match(/[^\s,@]*@[^\s,@]+(?=[\s,]|$)/g)然后filter结果他们是否以" @"。

开头

答案 1 :(得分:-1)

š不是单词字符,“w”代表单词字符。