2013-06-12 93 views
4

我目前正在爲日本開發一個網站,並且默認情況下,它們的鍵盤使用雙字節數字(\ uFF10- \ uFF19),這會導致問題驗證以及將數據傳遞給其他服務時的流程。我正在寫一個函數,在提交之前用單字節(\ u0030- \ u0039)替換雙字節。高效替換雙字節數字爲單字節數字

目前,我的計劃是使用查找表和換出數量的數字,但覺得這是循環十幾個輸入時效率低下。我相信他們是一位RegEx大師可以提出的更有效的方法。

任何想法?提前致謝!

回答

2

這實際上只是一個音譯問題;以及你正在取代什麼,以及你正在取代它,都是連續的。所以這將工作:

function replaceFullWidthNumerals(s) { 
    return s.replace(/[\uFF10-\uFF19]/g, 
    function(m){ 
     return String.fromCharCode(m.charCodeAt() - 0xFEE0); 
    } 
); 
} 

我的靈感也寫了一個blog post關於它。

+0

謝謝!太棒了! –