【发布时间】:2013-11-29 22:20:49
【问题描述】:
我有这个正则表达式,它可以替换除字母数字、空格和破折号之外的所有内容。
str.replace(/[^\w\s-]+/g, '')
A) 我怎样才能使它排除 str 中的 unicode 单词?
我应该手动输入所有!#$%etc。我要排除的符号?
B) 另外,如果我想去掉表情符号(因为我允许使用其他 unicode)并且只想保留其他语言的单词?
【问题讨论】:
-
项目A:
str.replace(/[^A-Za-z0-9\s-]/g, '');? -
定义“unicode 词”。您到底想排除什么(显然,从要删除的字符集中)?
-
你能举一些你指的是哪个表情符号的例子吗?其中一些?哪一个? en.wikipedia.org/wiki/Emoji#In_the_Unicode_standard
-
@JukkaK.Korpela 例如“ιδέα”是希腊字符中的“unicode word”,在 unicode 中为:
'\u03b9\u03b4\u03ad\u03b1'。如果我尝试上面的.replace(),我会得到一个空字符串。示例:jsfiddle -
示例不是定义。对于编程,您需要一个定义。由于
\w的定义方式(它只匹配某些 Ascii 字符),您会得到一个空字符串。
标签: javascript regex unicode