PDA

View Full Version : validator فارسی



amirebm
جمعه 19 فروردین 1390, 07:55 صبح
سلام دوستان
من میخوام روی textbox هام حروف فارسی را کنترل کنم ، برای حروف انگلیسی کد زیر را پیدا کردم که فقط اجازه نوشتن حروف انگلیسی را می دهد .


System.Text.RegularExpressions.Regex.IsMatch(Mem_N ame.Text, @"^[a-zA-Z]+$")





برای حروف فارسی باید چه کدی را بزنم ؟

mmd2009
جمعه 19 فروردین 1390, 08:40 صبح
با سلام.

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




Char[] PersianChar = new Char[]
{' ','ش', 'س', 'ی', 'ب', 'چ','ج' ,'ح' ,'خ' ,'ه' ,'ع' ,
'غ' ,'ف' ,'ق' ,'ث' ,'ص' ,'ض' ,'ل' ,'ا' ,'ت' ,'آ' ,'ن' ,'م' ,
'ک' ,'گ' ,'ظ' ,'ط' , 'ز','ر' ,'ذ' ,'د' ,'ئ' ,'و'};

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
this.CheckChar();
if (this.PersianChar.Contains(e.KeyChar))
{
e.Handled = false;
}
else
{
e.Handled = true;
}
}
private void CheckChar()
{
foreach (Char chr in Clipboard.GetText())
{
if (!this.PersianChar.Contains(chr))
{
Clipboard.Clear();
}
}
}

private void textBox1_MouseClick(object sender, MouseEventArgs e)
{
this.CheckChar();
}

amirebm
جمعه 19 فروردین 1390, 11:44 صبح
دوست عزیز راستش من میخوام کاربر بتونه حروف انگلیسی رو وارد کنه اما من بتونم تشخیص بدم.

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

کدی که شما نوشتید هم به کارم میاد اما اگه کلمه ایی رو نوشتم و خواستم پاکش کنم با back space و delete نمیشه پاکش کرد و فقط اگه کرسر کیبورد رو به اول کلمه بیارم میشه اون رو با delete پاک کرد.

azaditafakor
جمعه 19 فروردین 1390, 13:15 عصر
به شرط چک کردن اونا رو هم اضافه کن ، اینجوری :

&& Convert.ToInt32(e.KeyChar) == Convert.ToInt32(Keys.Back)