PDA

View Full Version : سوال: RegularExpression فارسی



Iran58
دوشنبه 02 اسفند 1395, 14:01 عصر
سلام
من کد زیر را نوشته ام

[RegularExpression("[a-zA-Z0-9]{8,20}",ErrorMessage = "{0} از حروف و اعداد ومابین 8الی20 باشد")]

اما حروف فارسی را ساپورت نمی کند برای اینکه حروف فارسی را هم چک کند باید چکارکنم
باتشکر

developing
سه شنبه 03 اسفند 1395, 00:51 صبح
باسلام

برای اینکه بتوان از یونیکد (شامل زبان فارسی) در عبارت های باقاعده استفاده نمود باید به شکل زیر نوشت:
\uLetterCode که LetterCode همون یونیکد نویسه های مورد نظر شماست. برای مثال یونیکد نویسه ی «ا» به شکل U+0627 هست که در عبارت باقاعده +U اون رو حذف می کنیم.

برای نمونه:
عبارت باقاعده ی زیر واژه ی «احمد» رو در متن جستجو می کنه.
\u0627\u062D\u0645\u062F
برای همه ی نویسه های فارسی از [\u0622-\u0650] استفاده نمایید.
اعداد فارسی [\u06F0-\u06F9]
اعداد عربی [\u0660-\u0669]
کاف فارسی \u06A9
نویسه پ \u067E
نویسه گ \u06AF
نویسه ژ \u0698
نویسه چ \u0686

لینک های زیر می تونه به شما کمک کنه:

فهرست نویسه های یونیکد:
نویسه های یونیکد (http://www.utf8-chartable.de/unicode-utf8-table.pl?start=1280&number=1024)

آموزش، آزمون و منبع عبارت های باقاعده:
عبارت های باقاعده (http://regexr.com/)

امیدوارم مفید بوده باشد.
شاد و پیروز باشید.