View Full Version : سوال: تشخیص حروف فارسی و شمارش آنها
masudafsar
جمعه 24 آذر 1391, 23:41 عصر
من یه textarea دارم که می خوام وقتی کاربر هر کلید رو که فشار داد تعداد حروف رو زیر اون بنویسه، در ضمن تو textarea فقط بتونه از حروف فارسی استفاده کنه.
من این کار ها رو می خوام با jQuery در سمت کاربر و با PHP در سمت سرور انجام بدم.
با تشکر...
Sni[er
شنبه 25 آذر 1391, 15:20 عصر
<!doctype html>
<html>
<head>
<script src="jquery-1.8.2.min.js"></script>
<script>
$(function(){
var count = 0;
$('#txt').bind('keypress keydown',function(e){
var key;
var Unikey;
if (e.type == 'keypress') Unikey = e.keyCode || e.which;
if (e.type == 'keydown' || e.type == 'keypress') key = e.keyCode || e.which;
var string = String.fromCharCode(Unikey);
var regxFa = new RegExp('[^a-zA-Z]');
if (regxFa.test(string)){
count+=1;
$('#count').text(count);
return true;
}
return false;
});
});
</script>
</head>
<body>
<textarea id="txt"></textarea>
<br/>
<span id="count"></span>
</body>
</html>
hamiii
یک شنبه 26 آذر 1391, 14:46 عصر
شمارش حروف مشکل داره.برای این کار باید فقط event مربوط به کلیدهایی که کاراکتر چاپ میکنن رو شمرد. تو این اسکریپت هر کلیدی که فشرده بشه دو شماره افزوده میشه.(به عنوان نمونه کلید back space رو تست کنید)
Sni[er
یک شنبه 26 آذر 1391, 19:30 عصر
اگر keydown رو از bind بردارید مشکل backspace و شمردن شدن دوبار درست میشه ولی space رو حساب می کنه و اینکه اگر کاراکتری رو پاک کرد شمارنده به روز بشه ، اینها رو باید بهش اضاف کرد.
masudafsar
دوشنبه 27 آذر 1391, 14:47 عصر
حل شد!
چرا این قدر سختش میکنید!
تو یه سایت خارجی این کد رو پیدا کردم، برای فارسی هم جوا داد:
تو قسمت جاوا اسکریپت از کد زیر استفاده کنید:
function charCount(){
var send_text = $("#textArea").val();
$("#char_count").val(send_text.length);
}
و این هم تو Html :
<textarea id="textArea" name="textArea" onkeyup="charCount()"></textarea>
<input id="char_count" name="char_count" type="text" disabled>
Sni[er
سه شنبه 28 آذر 1391, 10:00 صبح
خوب این کدی که نوشتی که کل حروف رو حساب می کنه . مگه شما ننوشتید فقط بتونه حروف فارسی رو وارد کنه . دقیقا میشه بگید الان این کجاش فقط کارکتر های فارسی رو می شماره ؟
masudafsar
سه شنبه 28 آذر 1391, 23:20 عصر
خوب این کدی که نوشتی که کل حروف رو حساب می کنه . مگه شما ننوشتید فقط بتونه حروف فارسی رو وارد کنه . دقیقا میشه بگید الان این کجاش فقط کارکتر های فارسی رو می شماره ؟
حق با شماست.
مشکل اولیه من محاسبه تعداد حروف یک متن بود که در بعضی مواقع به علت استفاده نکردن از encoding مناسب در صفحه ،کد بالا خروجی اشتباه می داد که حل شد.
حالا مشکل تشخیص فارسی رو با دستور زیر حل کردم :
var text = $("#textarea1").val();
if(text.search(/[^\x00-\x7E]/) != -1){
alert("Farsi");
else
alert("english");
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.