2016-11-30 51 views
1

我目前使用以下包含正則表達式模式的方法來驗證基於英語的密碼字段。使用Javascript驗證包含阿拉伯字符的密碼輸入

/** 
* Validates password based on following rules: 
* Must contain a lowercase letter 
* Must contain a Uppercase letter 
* Must contain a number 
* Must be longer than 8 chars 
* Can contain special chars 
*/ 
exports.isValidPassword = function (password) {  
    var pattern = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$/; 
    var result = pattern.test(password); 
    return result; 
}; 

我有我需要支持阿拉伯文寫成了新的要求,我怎麼能做到這一點,同時仍保持我目前的規則是什麼?過去我曾看到人們將{arabic}置於正則表達式中,但我不確定這是否適合我的情況。

回答

3

[\u0621-\u064A]應匹配阿拉伯字母表中的任何字母。

將此添加到您的正則表達式允許的字符範圍內應該這樣做。

請注意,阿拉伯語沒有大寫和小寫字母的拉丁字母表的方式,所以你將不得不考慮如何定義你的密碼要求與考慮到。

+1

很好的答案,但我認爲他們也應該考慮阿拉伯數字。所以數字正則表達式應該變成'[0-9 \ u0660- \ u0669]' – GilZ

+0

Yup數字也是需要的。 (?=。*?[AZ])(?=。*?[0-9])([\ u0621- \ u064A])([0-9 \ u0660- \ u0669])。{8,} $ /;'這樣一個正則表達式可以同時用於英語和阿拉伯語? –