JavaScript - 使用正则表达式匹配非 ASCII 符号
JavaScript - match non-ascii symbols using regex
我想匹配评论中提到的所有用户。示例:
var comment = '@Agneš, @Petar, please take a look at this';
var mentionedUsers = comment.match(/@\w+/g);
console.log(mentionedUsers)
我期待 ["@Agneš", "@Petar"]
但得到 ["@Agne", "@Petar"]
。如您所见,š
符号不匹配。
如何匹配包括非 ascii 在内的所有字母符号?
š 不是单词字符,"w" 是单词字符。
在实现 ES6 对正则表达式中的 unicode 的支持之前,您可以使用类似的方法解决它:
/@[^\s,]+/g
您只需列出 不能 在用户名中的内容。明年,
/@\w+/gu
一种确保您不会收到一半电子邮件地址以及@位于单词中间的其他情况的方法是 match(/[^\s,@]*@[^\s,@]+(?=[\s,]|$)/g)
然后 filter
结果他们是否以“@”开头。
我想匹配评论中提到的所有用户。示例:
var comment = '@Agneš, @Petar, please take a look at this';
var mentionedUsers = comment.match(/@\w+/g);
console.log(mentionedUsers)
我期待 ["@Agneš", "@Petar"]
但得到 ["@Agne", "@Petar"]
。如您所见,š
符号不匹配。
如何匹配包括非 ascii 在内的所有字母符号?
š 不是单词字符,"w" 是单词字符。
在实现 ES6 对正则表达式中的 unicode 的支持之前,您可以使用类似的方法解决它:
/@[^\s,]+/g
您只需列出 不能 在用户名中的内容。明年,
/@\w+/gu
一种确保您不会收到一半电子邮件地址以及@位于单词中间的其他情况的方法是 match(/[^\s,@]*@[^\s,@]+(?=[\s,]|$)/g)
然后 filter
结果他们是否以“@”开头。