Sgwgo

کد تشخیص زبان فارسی از انگلیسی

36 پست در این موضوع قرار دارد

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

به اشتراک گذاری این پست


لینک به پست

سلام

از جاوا میتونین استفاده کنید.

نمونه کدی که خودم استفاده میکنم »


String.prototype.toFaDigit = function() {
return this.replace(/\d+/g, function(digit) {
var ret = '';
for (var i = 0, len = digit.length; i < len; i++) {
ret += String.fromCharCode(digit.charCodeAt(i) + 1728);
}
return ret;
});
};

String.prototype.toEnDigit = function() {
return this.replace(/[\u06F0-\u06F9]+/g, function(digit) {
var ret = '';
for (var i = 0, len = digit.length; i < len; i++) {
ret += String.fromCharCode(digit.charCodeAt(i) - 1728);
}

return ret;
});
};
function processEnter(input)
{
var enterCount = 0;
for (var i = 0; i < input.length; i++)
{
if (input.charCodeAt(i) == 10)
{
enterCount ++;
}
}
return enterCount;
}
function isEnglishString(input )
{
if (input == '')
{
return true;
}

for (var i = 0; i < input.length; i++)
{
if (input.charCodeAt(i) > 127)
{
return false;
}
}
return true;
}

function updateLengthAndMessageCount2(MainTextFieldName, messageLengthFieldName, messageCountFieldName, fieldmobileCount)
{
var fieldObj = document.getElementById(MainTextFieldName);
var messageLengthField = document.getElementById(messageLengthFieldName);
var messageCountField = document.getElementById(messageCountFieldName);
var messageContent1 = fieldObj.value;
var messageContent = messageContent1.replace(/(\r\n|\r|\n)/g, ' ');

var enterCount = processEnter(messageContent);
var browserName = navigator.appName;
var messageLength = messageContent.length + fieldmobileCount;

if (browserName != 'Netscape')
{

messageLength = messageLength - enterCount;
}
var RemainLength = 0;
var maxMessageCount = 5;
var maxEnglishLength = 160;
var maxPersianLength = 70;
var maxLongEnglishLength = 153;
var maxLongPersianLength = 66;
var isEnMessage = isEnglishString(messageContent);

var maxMessageLength = isEnMessage ? (maxMessageCount * maxLongEnglishLength) : (maxMessageCount * maxLongPersianLength);
fieldObj.MaxLength = maxMessageLength;
var messageCount = 1;
if (isEnMessage && messageLength > maxEnglishLength)
{
messageCount = messageLength > maxMessageLength ?
maxMessageCount : parseInt(messageLength % maxLongEnglishLength) == 0 ?
parseInt(messageLength / maxLongEnglishLength) :
parseInt(messageLength / maxLongEnglishLength) + 1;
}

if (!isEnMessage && messageLength > maxPersianLength)
{
messageCount = messageLength > maxMessageLength ?
maxMessageCount : parseInt(messageLength % maxLongPersianLength) == 0 ?
parseInt(messageLength / maxLongPersianLength) :
parseInt(messageLength / maxLongPersianLength) + 1;
}

if (messageCount == 1)
{
RemainLength = isEnMessage ? parseInt(maxEnglishLength - messageLength) : parseInt( maxPersianLength - messageLength)

}
else
{
RemainLength = isEnMessage ? parseInt(messageCount * maxLongEnglishLength - messageLength) : parseInt( messageCount * maxLongPersianLength - messageLength)

}
messageLengthField.value = RemainLength;
messageCountField.value = messageCount;
ChekNumLang(MainTextFieldName);
}
function ChekNumLang(MainTextFieldName) {
var fieldObj = document.getElementById(MainTextFieldName);
if (document.getElementById("FarsiNum").checked) {
fieldObj.value = fieldObj.value.toFaDigit();

}
}
function ChekNumLang_ChekBox(MainTextFieldName) {
var fieldObj = document.getElementById(MainTextFieldName);
if (document.getElementById("FarsiNum").checked) {
fieldObj.value = fieldObj.value.toFaDigit();
}
else {
fieldObj.value = fieldObj.value.toEnDigit();
}
}

به اشتراک گذاری این پست


لینک به پست

ممنون از شما دوست عزیز لطف کردید

ولی دوستان اگه کد بهتری سراغ دارن لطف معرفی کننند

به اشتراک گذاری این پست


لینک به پست

تشخیص انگلیسی بودن:


if (preg_match("/^[a-zA-Z0-9]+$/", $pas)) {
}

به اشتراک گذاری این پست


لینک به پست

ممنون پارسا جان خیلی گلی عالی بود

به اشتراک گذاری این پست


لینک به پست

فقط یه سوال

این کد چه مشکلی داره که فقط قسمت else داره جواب میده


<?php if (preg_match("/^[a-zA-Z0-9]+$/", $clog)) { ?>
<div dir="ltr">
<?php echo nl2br($clog); ?>
</div>
<?php } else { ?>
<div dir="rtl">
<?php echo nl2br($clog); ?>
</div>
<?php }?>

به اشتراک گذاری این پست


لینک به پست

خیلی برام عجیبه هرچی نیگا میندازم هیچ ایرادی نمیبینم!!!! ممنونمیشم راهنمایی کنید

به اشتراک گذاری این پست


لینک به پست

ورودی چی هست؟

نمونه زیر بدرستی به ازای هر متن جواب میده


$test_string = "parsi";
$test_string = "پارسی";
if(preg_match('/^[a-zA-Z0-9]+$/',$test_string)) {
echo 'EN';
}else{
echo 'ELSE';
}

به اشتراک گذاری این پست


لینک به پست

پارسا جان یه سوال

تکلیف کاراکترها چی میشه؟

به اشتراک گذاری این پست


لینک به پست

به حروف اضافه شون کنید همونطوری که اعداد و حروف معرفی شده اند

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

اگر از زمینه دلخواه می خوای استفاده کنی می تونی دو زمینه بسازی و در قالب زمینه اول را چپ چین و دومی را راستچین کنی که خیالت راحت شه

به اشتراک گذاری این پست


لینک به پست

با این تست کنید . سمبل انگلیسی


/^[a-zA-Z0-9$-/:-?{-~!"^_`\[\]]+$/

به اشتراک گذاری این پست


لینک به پست

من هنوز دارم از کد قبلی خودم که چند پست بالاتر گذاشتم استفاده میکنم

و محتوای رمینه من اینه:


Keyboard controls can now be used in touch control mode

دلیل چیه که جواب نمیگیرم؟

آیا اسپیس هم اینجا باعث دردسر میشه؟

به اشتراک گذاری این پست


لینک به پست

بله

اینو تست کنید


/^[a-zA-Z0-9$-/:-?{-~!"^_`\[\] ]+$/

به اشتراک گذاری این پست


لینک به پست

این خطا رخ داد

Parse error: syntax error, unexpected '`'

به اشتراک گذاری این پست


لینک به پست

دستور رو چطوری بکار بردید؟

اینو باید داخل ' در شرط قبلی قرار دهید

به اشتراک گذاری این پست


لینک به پست

قبل


if (preg_match("/^[a-zA-Z0-9]+$/", $clog))

بعد


if (preg_match("/^[a-zA-Z0-9$-/:-?{-~!"^_`\[\] ]+$/", $clog))

به اشتراک گذاری این پست


لینک به پست

if (preg_match("/^[a-zA-Z0-9$-/:-?{-~!\"^_`\[\] ]+$/", $clog))

به اشتراک گذاری این پست


لینک به پست

حالا این خطا

Warning: preg_match(): Unknown modifier '-' in

به اشتراک گذاری این پست


لینک به پست

:)


<?php

$test_string = "Keyboard controls can now be used in touch control mode";
//$test_string = "پارسی";
if (preg_match("/^[a-zA-Z0-9$-\/:-?{-~!\"^_`\[\] ]+$/", $test_string)){
echo 'EN';
}else{
echo 'ELSE';
}
?>

به اشتراک گذاری این پست


لینک به پست

کد شما به درستی کار میکنه

حالا چرا وقتی این متن بزارم else میده


Rise and swine! It's a beautiful morning, but the Bad Piggies have just one thing on their mind: FOOD! Use two ALL NEW gadgets in these 15 NEW LEVELS to track down some elusive chocolate cake!
15 new sun-drenched levels!
Climb walls with the new suction cup gadget!
Punch your way to victory with the new spring-loaded Boxing Glove!
Go crazy in an all-new sandbox!

آیا ممکنه بخاطر اینتر موجود در کل متن هست؟

خب با یه تست کوچیک فهمیدم که بخاطر اینتر هستش آیا واسش راه حلی هست؟

به اشتراک گذاری این پست


لینک به پست

همه کاراکترها کد دارند


\n خط جدید
یا
\r\n

به اشتراک گذاری این پست


لینک به پست

خب مشکل اینتر هم حل شد

فقط یه چیز عجیب مونده چرا وقتی استرینگ به صورت دستی وارد کنیم جواب درست میده و وقتی از زمینه میگیره اشتباه

و هم متن دستی و هم متن زمینه یکی است

به اشتراک گذاری این پست


لینک به پست

یاففففففففففتم مشکل را

ببینید آقا پارسا ما وقتی متن بصورت دستی وارد کنیم یعنی:


$string="تست
اینتر"

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

ولی وقتی میخواد از زمینه بخونه حتی اگه در متن زمینه اینتر زده باشم موقه چاپ مقدار زمینه اگه دقت کرده باشد اینتر نادیده میگیره و همین قضیه الان واسه من مشکل ساز شده

چون طبق تست من الان اگه متن زمینه بدون اینتر باشه به درستی جواب میگیرم ولی اگه اینتر اشته باشه جواب نمیگره و else نشون میده

به اشتراک گذاری این پست


لینک به پست

شما باید در ورودی که بصورت رشته وارد میکنید برای هر /n به br تبدیلش کنید

به اشتراک گذاری این پست


لینک به پست

دقیقا منظور شما چیه؟ یعنی به br تبدیل کنم و بعد کاراکتر br تعریف کنم؟

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط armakcell
      با سلام بنده در سایتم میخواستم یک ابزارک قرار بدم مانند ابزارک این سایت
      http://powerturk.ir

      اگر داخل این سایت برید در یک قسمت نوشته است آرشیو فول البوم
      بنده این ابزارک را چگونه به دست بیارم؟
      بنده یک تصویر ضمیمه میکنم در صورتی که در سایت وارد نشد

    • توسط amir_hossein
      سلام دوستان من قصد دارم چندتا اسلاید کناره هم به صورت خطی (مثلا 4 تا اسلاید) اواسط صفحه اصلی یا انتهای صفحه قرار بدم.افزونه ای میتونید بهم معرفی کنید برای اینکار؟
    • توسط amir_hossein
      سلام دوستان من قصد دارم چندتا اسلاید کناره هم به صورت خطی (مثلا 4 تا اسلاید) اواسط صفحه اصلی یا انتهای صفحه قرار بدم.افزونه ای میتونید بهم معرفی کنید برای اینکار؟
    • توسط mosi1672
      سلام 
      من یه سایتی دارم که برای همایش علمی مقالات رو با فرمی که با افزونه گرویتی فرم ساخته شده دریافت میکنم.
      خواستم بدونم آیا راهی وجود داره که امار مقالات دریافتی رو به صورت داینامیک و پویا بتونم با روی سایت اصلی نشون بدم؟ البته با ظاهر زیبا
      مثل این سایت تایپ ایران که امار پروژه ها و کاربرانش رو به صورت نمودار دایره ای نشون میده..
      این ادرس سایت :
      ادرس فرم:http://ihsc.bsbmu.ir/maghaleh/
      ادرس سایت:http://ihsc.bsbmu.ir/

      میدونم خیلی ساده گفتم ولی اگر امکان داره راهنمایی بفرمایید
    • توسط rezarnmsh
      با سلام احتیاج به طراحی یک سایت مشابه persiandivx.net با وردپرس دارم افرادی که فرصت  طراحی دارند با ایمیل *** مبلغ و زمان ان را اطلاع دهند با تشکر