2013-06-26 22 views
12

我想編寫一個正則表達式,如果在我的文本框中輸入了波斯語單詞,則返回true。我希望它只接受波斯人的角色。我該怎麼做?如何編寫僅用於輸入波斯語字符的正則表達式

我想這一點,但它不正常工作:

function Just_persian(str){ 
    var p=/[پچجحخهعغفقثصضشسیبلاتنمکگوئدذرزطظژؤإأءًٌٍَُِّ\s]+$/; 
    if(!str.match(p)) 
    alert("not format"); 
} 
+1

這裏是你的代碼? –

+0

@BhavikKama:我沒有寫任何東西。這是我的問題,我該怎麼做。 – Angel

+0

堆棧溢出是關於尋找解決方案後,你已經嘗試了一些東西或谷歌搜索..你試圖搜索任何東西? –

回答

20

波斯字符是Arabic Unicode block內,它從U + 0600以U +敘利亞文(其在字符類指定爲\u0600-\u06FF)的範圍。

function just_persian(str){ 
    var p = /^[\u0600-\u06FF\s]+$/; 

    if (!p.test(str)) { 
     alert("not format"); 
    } 
} 

改編成JavaScript從這樣一個問題:Regex for check the input string is just in persian language

+0

所以你解決了你的問題? –

+1

答案是完全錯誤的。 「@」...「'是怎麼回事?當你從.NET代碼複製到JS時,他們不會神奇地工作。 – nhahtdh

+0

@nhahtdh優雅地解決了你自己的問題,而不會降低或提出自己的答案。道具給他。 – Neil

0

波斯文字是的範圍內:\ u0600- \ u06FF]和:[\ S]

使用此代碼:

function Just_persian(str){ 
    var p=/@"^([\u0600-\u06FF]+\s?)+$"/; 
    if(!str.match(p)) 
    alert("not format"); 
} 

這個模式包括字母和空格字符。

4

您可以使用persianRex,它檢測所有波斯語字符在不同的鍵盤佈局,它是開源的。

將其下載並放到您的項目文件夾中。然後,它包括在你的HTML這樣的:

<script src="persian-rex/dist/persian-rex.js"></script> 

然後,在JavaScript,你可以這樣做:

function Just_persian(str){ 
    if(persianRex.text.test(str)) 
    alert("not format"); 
} 
相關問題