2016-06-07 126 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的內容。 –