發佈為 AIR for iOS 的應用程式
在 iPhone 上面,卻不能使用注音輸入中文字
但用手寫、拼音都可正常輸入
我看裡面的 code
在輸入欄位,設定了 restrict 屬性,用來限制使用者只能輸入中英文和數字
允許的字元範圍為
英文數字:aA-zZ0-9
中文字:\u4e00-\u9fa5
讓我想到,以前寫網頁,使用 autocomplete 的功能時
也遇過不同瀏覽器對"何時字有輸入"的處理,似乎不盡相同
所以我直覺是這個限制的影響
用 \u4e00-\u9fa5 這個關鍵字查了一下
後來在這邊看到
http://applelacutos.blogspot.tw/2013/01/textfield.html
"蘋果的系統判定字長時,是把還未完成的拼音也算進去的"
所以我想應該是 \u4e00-\u9fa5 這個範圍不包含注音符號
查了一下注音符號的 Unicode 範圍,請對方加入後,就可以正常使用注音輸入中文了
注音符號 Unicode 範圍,整理如下
ㄅㄆㄇ ~ ㄧㄨㄩ:\u3105-\u3129
二聲(ˊ):\u02CA
三聲(ˇ):\u02C7
四聲(ˊ):\u02CB
輕聲(˙):\u02D9
我不會寫 AS3,所以下面就用 JavaScript 正規表示式當測試範例
var pattern = /[\u3105-\u3129\u02CA\u02C7\u02CB\u02D9]/; console.log(pattern.test("ㄅ")); // true
注音符號的 Unicode 參考:
http://zh.wikipedia.org/wiki/%E6%B3%A8%E9%9F%B3%E7%AC%A6%E8%99%9F
http://www.cos.url.tw/software/Data001.html
換成win10後無法簡單打出ㄅㄆㄇㄈ,有了這個Unicode筆記真的幫了大忙!!謝謝~~
回覆刪除感謝,java 代碼
回覆刪除String pattern = ".*[\u3105-\u3129\u02CA\u02C7\u02CB\u02D9]+.*";
text = "中文ㄆㄇ字";
boolean b1 = text.matches(pattern);
System.out.println(text + "\t" + b1);
text = "中ㄆ文ㄇ字";
b1 = text.matches(pattern);
System.out.println(text + "\t" + b1);
text = "ㄆㄇ";
b1 = text.matches(pattern);
System.out.println(text + "\t" + b1);
text = "中ˊ文";
b1 = text.matches(pattern);
System.out.println(text + "\t" + b1);
text = "中文ˊ";
b1 = text.matches(pattern);
System.out.println(text + "\t" + b1);
感謝分享
刪除