2014-02-07 23 views
3

我有一個網頁(charset = UTF-8),有幾個字段和一個客戶端JavaScript程序。一個特定的輸入字段應該包含一個由JavaScript函數處理的數字。除德國人之外,該網頁應該被日本人使用。在JavaScript中識別(日文)Unicode數字。這可以做得更簡單嗎?

當日語使用表單時,他們可能會使用日語輸入法輸入數據。這意味着特別是諸如「1」的數字將被輸入爲「日文數字1」,它是unicode字符FULLWIDTH DIGIT ONE,即%uFF11。我想在JavaScript中將這樣的數字轉換爲數字值?

這是我來了多遠。因爲如果我能處理這個問題,我可以處理所有數字:

輸入字段的內容存儲在我的JavaScript變量moneystr中。我的想法是由一個「正常」的數字1.我發現我可以舉例來說這樣做是爲了取代日本數字1的每一次出現:

moneystr=moneystr.replace(/\uFF11/g,'1'); 

這似乎運作良好。

爲了將這個想法擴展到所有數字,我可以寫下10個這樣的替換語句,或者寫一個從0到9的循環,並從循環變量計算出unicode regexp。

但是,這兩種解決方案看起來都是糟糕的編程風格。有沒有更簡潔的方法來做到這一點?如果我用Perl寫這個,我會使用運算符,我可以一次性翻譯所有東西。 JavaScript中也有類似的功能嗎?還是應該使用完全不同的方法?

+1

可能重複[怎麼辦你映射替換字符在Javascript中類似於'tr'函數?](http://stackoverflow.com/questions/10726638/how-do-you-map-replace-characters-in-javascript-similar-to -tr-function-in) – Stephan

+1

試試這個優雅的解決方案:http://stackoverflow.com/a/10726800/363573 – Stephan

+0

謝謝。這(尤其是模擬Perl的tr函數)解決了我的問題! – user1934428

回答

相關問題