Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save KhaledElAnsari/fce640e12be45e3f5f8104729b30ebb6 to your computer and use it in GitHub Desktop.
Save KhaledElAnsari/fce640e12be45e3f5f8104729b30ebb6 to your computer and use it in GitHub Desktop.
Match user search with hamza in Arabic ( أ، ا ، آ ، إ ) against a list of words - UTF8
let match_arabic = (user_input, word) => {
let user_input_regx = "";
// البحث عن أ، ا ، آ و إ
let hamz_letters = ["أ", "ا", "آ", "إ"].join("|")
const hamz_regx = new RegExp(hamz_letters);
for (let d = 0, len = user_input.length; d < len; d++) {
user_input_regx += ( hamz_regx.test(user_input.charAt(d)) ? "[" + hamz_letters + "]" : user_input.charAt(d) );
}
user_input_regx = new RegExp(user_input_regx);
return user_input_regx.test(word);
};
let user_input_possiblites = [
"الاردن",
"الأردن",
"الآردن"
];
let word = 'الأردن';
user_input_possiblites.forEach(item => {
console.log(item, match_arabic(item, word) ? "Matched" : "Not Matched");
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment