2013-05-15 41 views

回答

2

的HTML5 pattern屬性如下的JavaScript正則表達式語法,這使得事情頗爲尷尬。例如,您無法測試字符屬性。相反,您需要列出允許的字符或字符範圍。

使用規範Scripts.txt文件(由Unicode Consortium),它定義了所有的字符的腳本(寫入系統),I構成如下:

pattern= 
"[a-zA-Z0-9-_. \ 
\u0620-\u063F\u0641-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\ 
\u06E5-\u06E6\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0750-\u077F\ 
\u08A0\u08A2-\u08AC\uFB50-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\ 
\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]{1,30}" 

從定義的集合與腳本的所有字符的開始作爲阿拉伯語,我拿起那些聲明爲字母的文字(一般類別LoLm),然後省略了BMP(基礎多語言平面)以外的文字。

BMP以外的字符很少使用,爲了用JavaScript語法表示它們,您需要自己包含字符,或者每個字符使用兩個\u表示法(代理對的每個組件都使用一個表示法)。這聽起來不太現實。

這當然是一個「硬線」的解決方案:它可能需要更新,如果有新的阿拉伯字母被添加到Unicode或字符的腳本是從或阿拉伯語改變(這不太可能)。但我不希望在我的一生中看到新的阿拉伯字母添加到BMP。

+0

http://imageshack.us/photo/my-images/89/sanstitreyhf.png/ 這是我將你給我的模式後得到的,在瀏覽器的名稱在阿拉伯語中顯示良好,但它也許從服務器或本地主機的一個問題,因爲它表現爲是什麼形象應該表現出非定義的字符

 PrivateImg-0489351267_أليسبيب 
user2303038

+0

?問題是關於輸入檢查。之後會發生什麼是一個完全不同的問題。請檢查屬性是否確實被請求的是什麼,如果有與數據的*服務器端處理*問題,請把它們作爲單獨的問題(S)。 (這聽起來像它的服務器端表單處理的問題不準備處理應用於編碼數據,但沒有真正的數據被賦予關於這一點,這*是*一個不同的問題) –

+0

啊,你是對的:D的模式問題解決了謝謝 – user2303038