2016-06-07 128 views
0

我试图从字符串中去除所有“Unicode符号”。也就是说,保留所有的多语言字符,但删除dingbats,箭头,以及所有这些东西。JavaScript等效于C#的Char.IsSymbol

C#有一个非常方便的函数,称为Char.IsSymbol,可以在字符串的所有字符上运行,当函数返回true时剥离字符。

我一直在寻找类似于JavaScript的东西。如果它是一个正则表达式,那么如何编译符号字符的所有unicode范围的列表?我看了XRegExp,但找不到只能过滤符号的东西。

+0

以下@ Luaan的建议,我用XRegExp,但因为我不想在我的主要项目中包括整个库我用'toString'提取'本机'JS正则表达式对象()'的XRegExp对象。 –

回答

1

XRegExp确实有你要找的支持 - http://xregexp.com/plugins/#unicode

你可能匹配无​​论是\pL\pS。您可以在http://www.regular-expressions.info/unicode.html#category

中找到典型的unicode类别的一个很好的列表。总的来说,Unicode是相当棘手的。它给你带来很多机会给你带来麻烦,特别是对于不完全兼容Unicode的软件(不幸的是,这包括JavaScript - 参见https://mathiasbynens.be/notes/javascript-unicode提供了一组很好的示例)。 JS通常以双重编码(HTML + JS,以及更糟的情况)运行,这进一步加剧了这一点。有人可能会找到一种方法来绕过你的支票,但恐怕没有简单的方法来阻止。只是在监视:)

+0

应该更详细地阅读有关XRegExp的内容。 –