• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

به یه فانکشن نیاز دارم که بتونم حروف لاتین رو تشخیص بدم

hossein_asp

کاربر تازه وارد
تاریخ عضویت
31 مارس 2005
نوشته‌ها
639
لایک‌ها
0
سن
40
محل سکونت
جایی که خدا نباشد
برای اینکه به کاربر اجازه ندم تو باکس فارسی بنویسه نیاز دارم کلمات لاتین رو تشخیص بدم اگه کسی کدشو داره
ممنون می شم.کد asp کلاسیک می خوام.
 

m3hrz4d

Registered User
تاریخ عضویت
21 سپتامبر 2005
نوشته‌ها
620
لایک‌ها
1
محل سکونت
اصفهان
واسه این کار نیاز به یک کد جاوااسکریپت داری که قبلا در مورد مقاله پست شده(توی همین قسمت یا توی قسمت جاوااسکریپت)
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
خوب asp از javascript هم پشتیبانی میکنه! میتونی همون کدی رو که داری سمت سرور هم استفاده کنی.
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
بحث زبونش نیست با هرچی دوست داری بنویس ! البته بهتره که با رو به کلاینت منتقل کنی تا به سروور ولی یه الوریتم ساده بهت میگم پیاده کن خیرش رو ببنی !

ببین هر کاراکتر یه شماره داره مثلا A-Z و a-z هرکدوم یه بازه شماره کاراکتری دارن که الان یادم نست ولی ته کتابهای برنامه نویسی مخصوصا C نوشته که به راحتی میتونی گیر بیاری

حالا فقط کافی از حلقه for استفاده کنی و تمام این شماره کاراکتر ها رو چک کنی که توی متن هست یا نه ! اگه بود درجا false بر میگردونه و اگه نبود دست آخر true !

حواست باشه که خیلی ها این اشتباه رو میکنن که میان حروف متن رو دونه دونه چیک میکنن که این خیلی منایع بیشتری از سرور (یا کلاینت در صورت کلایت ساید بودن ) میبره ! (اشتباه رایج !!! ) البته کلاینت که مال بابامون نیست:D ولی مواطب سرور باشید;)
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
همینطور که آقای H_R فرمودن معمولا" validation اطلاعات قبل از ارسال و در سمت کلاینت انجام میشه مگر اینکه لازم باشه با مقادیری که از قبل در دیتابیس ذخیره شده مقایسه بشه.

با یک regular expression ساده و بدون کد نویسی هم امکانپذیره
 

hossein_asp

کاربر تازه وارد
تاریخ عضویت
31 مارس 2005
نوشته‌ها
639
لایک‌ها
0
سن
40
محل سکونت
جایی که خدا نباشد
با یک regular expression ساده و بدون کد نویسی هم امکانپذیره
حواست باشه که خیلی ها این اشتباه رو میکنن که میان حروف متن رو دونه دونه چیک میکنن که این خیلی منایع بیشتری از سرور

میشه یه کد براش بهم بدین وقت نوشتن کد رو متاسفانه ندارم.
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
من برای یه کانورت کننده ایران سیستم به utf8 یه دفعه یه همچین چیزی نوشته بودم الان فقط نمیدونم کجا کذاشتمش !
 

m3hrz4d

Registered User
تاریخ عضویت
21 سپتامبر 2005
نوشته‌ها
620
لایک‌ها
1
محل سکونت
اصفهان
همیشه این جور چک ها رو سمت سرور انجام بده چون ممکنه کاربر جاوا اسکریپت رو غیر فعال کنه و هرچی دلش میخواد توی TextBox وارد کنه.بهترینش اینه که هر دو سمت چک کنی.

کد:
function check_eng(byval check_str)
 	Dim i,ascii_code
	 for i = 1 to len(check_str)
	   ascii_code = asc(mid(check_str,i))
	   if (ascii_code < 65 or ascii_code > 122 or (ascii_code > 90 and ascii_code < 97)) then
		check_eng = false
		exit function
	   end if
	 next  
	check_eng = true
end function
این کد فقط در ازای کاراتر های a-z و A-Z مقدار true رو برمیگردونه.میتونی با استفاده از جدول کد ascii کاراکتر های دیگه مثل _ یا - رو هم اضافه کنی.
اگه language=jscript باشه بهتر و راحت تره از RegExp استفاده کنی.
 
بالا