View Full Version : کمک : می خوام در یک Input فقط انگلیسی تایپ بشود
amir.NET2
جمعه 27 مهر 1386, 15:58 عصر
با سلام خدمت تمامی دوستان
همانطور که می دانید تابعی داریم که توسط آن می شود کاری کرد که فقط بشود در یک Input فارسی تایپ کرد
حالا من تابعی می خوام که برعکس این باشد و فقط بشود در یک Input انگلیسی تایپ کرد و نشود فارسی یا هر زبان دیگه ای تایپ کرد
منتظر کمک شما دوستان هستم
با تشکر
Saeiddev
چهارشنبه 02 آبان 1386, 12:48 عصر
شما باید با استفاده از JavaScript تابعی را در OnkeyDown روی input تعریف کنید که این تابع چک کند که ایا انگیسی تایپ شده یا نه ؟
cybercoder
شنبه 05 آبان 1386, 10:06 صبح
البته 100 درصد روش حساب نکن چون Javascript رو به راحتی می شه خاموش کرد
m.hamidreza
شنبه 05 آبان 1386, 10:56 صبح
البته 100 درصد روش حساب نکن چون Javascript رو به راحتی می شه خاموش کرد
قبلش میشه چک کرد و دید که که وضعیت browser چه جوریه اگه فعال نبود از کاربر بخوای که بقول شما روشنش کنه ! :چشمک:
Folaani
شنبه 05 آبان 1386, 11:03 صبح
میتونی بسته به نیاز سرور ساید و کلاینت ساید یا هر دو چک کنی.
بحثش مفصل هست اگر بخوای سیستم رو به این صورت پیاده کنی که مثلا کاربر اصلا هیچ چیز دیگه نتونه تایپ کنه. برای اینترنت اکسپلورر و فایرفاکس فرق میکنه و پیچیده هست و نکات زیادی داره.
تابعی هم بنده نوشته بودم که شاید در این راه بکار بیاد:
<html>
<body style="background-color: #EEF3E2">
<h3>Java Script</h3>
<div style="font-size: 15pt; white-space: pre">
<script language="javascript">
function is_ara_fa(txt) {
return /^([\u0600-\u06FF]|\s)+$/.test(txt);
}
txt_arr=new Array(
"مادرم روزت مبارک"
, "مادر - Mother",
"سلام!",
"سلام",
"سلام بچه ها، خونهء ما اینجاست؛"
, "\xD8",
"گچ پژ ّ َ ِ ِ ُ ً ٍ "
, "ی ی ک ک",
"فارسی+عربی",
"نقطه.",
"بدون نقطه",
"اعداد فارسی ۱۲۳۴",
"۴/۲",
"۴÷۲",
"ش=س",
" "
);
for(i in txt_arr) {
document.write('«<span style="color: blue">', txt_arr[i], "</span>» ");
if(is_ara_fa(txt_arr[i])) document.write('<span style="color: green">is fully Arabic/Farsi</span>');
else document.write('<span style="color: red">contains non-Arabic/Farsi</span>');
document.write('<hr />');
}
</script>
</div>
<h3>Java Script</h3>
</body>
</html>
البته این جزیی از یک مطلب دیگه بود که در فروم دیگری درج کرده بودم؛ تابع تشخیص متون فارسی در پی اچ پی بود موضوع بحث که این قسمت کلاینت ساید برای تکمیلش اضافه شد.
حالا این تابع میتونه ورودی رو وقت سابمیت چک کنه و اگر فارسی/عربی بود قبول نکنه و پیغام مقتضی به کاربر بده. البته احتمالا باید تکمیلش کنی و کاراکترهای بخصوصی رو بهش اضافه/کم کنی. فعلا فقط فاصله به یادم میاد.
--------
ضمنا با تغییر رنج یونیکد مربوطه میتونی مستقیما انگلیسیش کنی که بهتره (فرضا طرف اگر چینی هم وارد کنه اجازه نمیده).
اما کلا چک کردن انگلیسی بنظرم کار خیلی ساده تری هست و از راههای دیگه ای میشه براحتی انجامش داد.
شاید این چیزی که اینجا گفتم و گذاشتم به کارت نیاد و مستقیما مربوط نباشه، اما شاید ایده دهنده باشه. برای چک کردن ورودی فارسی در پی اچ پی مشکل وجود داشت چون پی اچ پی پشتیبانی Native از یونیکد نداره درحال حاضر (وعده برای نسخهء ۶).
چیزی مثل تایپ کردن دونه دونهء کاراکترها در یک رشته و بعد مقایسهء این رشته هم راه اصولی و مطمئنی نیست و در پی اچ پی مشکل امنیتی هم داره. پس با رنج یونیکد باید اینکار انجام بشه و الگوی یک رشتهء utf8.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.