Sgwgo

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

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

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

0

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


لینک به پست

سلام

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

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


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();
}
}

4

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


لینک به پست

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

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

0

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


لینک به پست

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


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

4

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


لینک به پست

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

0

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


لینک به پست

فقط یه سوال

این کد چه مشکلی داره که فقط قسمت 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 }?>

0

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


لینک به پست

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

0

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


لینک به پست

ورودی چی هست؟

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


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

1

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


لینک به پست

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

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

0

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


لینک به پست

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

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

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

0

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


لینک به پست

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


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

1

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


لینک به پست

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

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


Keyboard controls can now be used in touch control mode

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

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

0

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


لینک به پست

بله

اینو تست کنید


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

1

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


لینک به پست

این خطا رخ داد

Parse error: syntax error, unexpected '`'

0

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


لینک به پست

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

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

2

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


لینک به پست

قبل


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

بعد


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

0

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


لینک به پست

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

3

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


لینک به پست

حالا این خطا

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

0

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


لینک به پست

:)


<?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';
}
?>

3

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


لینک به پست

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

حالا چرا وقتی این متن بزارم 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!

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

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

0

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


لینک به پست

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


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

2

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


لینک به پست

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

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

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

0

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


لینک به پست

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

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


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

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

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

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

0

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


لینک به پست

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

3

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


لینک به پست

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

0

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


لینک به پست

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط sydvza
      باسلام ببخشید من کلیدواژه دکه را انتخاب کردم ولی در سرچ گوگل کلمه دکه وارد میکنم حتی جز 10 صفحه هم نیستم
      https://dackeh.com
    • توسط MajidRB
      سلام وقتتون بخیر.
      دوستان قالب placid رو به صورت های مختلف دانلود و نصب کردم ( هم از سایت های فارسی و قالب فارسی شده هم از منابع خود وردپرس)
      چه به شکل فارسی چه به شکل انگلیسی پست ها رو اونطوری که در پیش نمایش قالب نشان داده شده ، در صفحه اصلی نشان نمیده !
      عکس ها رو درج میکنم
      هیچ تنظیماتی نمانده که من دستکاری نکرده باشم
      فکر کنم باید چند خط کد کم یا زیاد بشه ( که بلد نیستم ! )
      خیلی ممنون میشم راهنمایی کنید
       


    • توسط nnmmss
      با سلام
       
      من اصلا وردپرس بلد نيستم ولي مجبورم كه سايتي را نگهداري كنم. در اين سايت وقتي وارد بعضي صفحات ميشوم عبارت "دسته" به انتهاي عنوان اضافه شده.  اين صفحات بعنوان "دسته" در فهرست انتخاب شده اند. مثلا
      من در منو مورد 
      آرشيو   
      را دارم كه زير مجموعه آن 
      آرشيو سال 97
      آرشيو سال 96
      آرشيو سال 95
      هست.
       
      من "آرشيو" بعنوان برگه انتخاب شده و آرشيو سال 97 - 96 - 95 به صورت دسته انتخاب شده است. وقتي من روي هر كدام از آرشيو سال 97 يا 96 يا ..... ميروم عنوان صفحه به صورت زير است
      آرشیو سال 97دسته
      اين عبارت دسته از كجا ميايد؟ و من چگونه ميتوانم آنرا حذف كنم؟
      با تشكر
    • توسط amirmehdi950
      سلام روزتون بخیر
      من میخوام از افزونه ultimate member private message استفاده کنم اما یه چیزی کم داره.
      میخوام دکمه پیوست هم داشته باشه.
      (این افزونه همونطوری که از اسمش پیداست برای ارسال پیام خصوصی بین کاربرا ساخته شده، افزونه private message به تنهایی کار نمیکنه و باید ultimate member هم نصب باشه که افزونه بسیار خوبیه.)
      حالا من سوالی که دارم اینه که چطوری میشه این دکمه رو هم به قسمت چت اضافه کرد و از کجا باید کدهاشو ویرایش کرد
      این هم تصویر افزونه ( محل جایگذاریش میخوام کنار بخش emoji باشه)
       

      ممنونم
    • توسط amirmehdi950
      سلام دوستان اگه جوابم رو بدید ممنون میشم.
      من یک افزونه ای میخوام (مثل مناقصه) که افراد بتونن با ثبت نام در سایت، پروژه شون رو ثبت و افراد دیگه بتونن روی اون پیشنهاد قیمت بدن و درصورت تایید ثبت کننده پروژه، پروژه خودکار تایید و شروع بشه و مجری بتونه با تعیین حق دستمزد پولش رو قبل از دریافت فایل توسط ثبت کننده پروژه ، دریافت کنه.
      منتها زمانی که ثبت کننده پول رو پرداخت میکنه خودکار یه درصدی کم شه(حق سایت) و بقیش به حساب مجری (حساب اعتباریش که تو سایته) ریخته بشه.
      مشابه این کار در چند سایت هست که میتونید مشاهده کنید:
      http://typeiran.com/
      http://tarahiran.com/
      https://parscoders.com
      این هم یک نمونه از چیزی که میگم: https://parscoders.com/project/54921/درخواست-قالب-آماده-وردپرس-برای-ثبت-سفارش-انجام-پروژه البته منظور چیزی که ثبت کردن ، تحت عنوان قالب وردپرس... نیست، منظورم نحوه عملکرد سایت هست.