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

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


لینک به پست

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط ghasem47
      سلام به همه ی دوستان عزیز
      من در نظر دارم که یک وبسایت برای فروش فایل هایی مربوط به وب راه اندازی کنم .و قصد من این است که علاوه بر فروش فایل در سایت ، هاست و دامنه نیز بفروشم . و همچنین این هم مهمه که کاربر برای خرید هاست و یا دامین باید در وبسایت عضو بشه و بعد از خرید نیز بتونه اطلاعات هاست و تنظیمات هاست رو از حساب کاربریش در وبسایت من انجام بده.
      مانند این وبسایت : (سایت ساز زرین )   https://sitesazz.ir/
      اما تنها مشکل و مسئله در این جاست که من نمی دونم و بلد نیستم که باید چگونه این کار رو انجام بدم؟
      من قراره که وبسایت رو با وردپرس راه اندازی کنم ولی نمی دونم چطوری باید این امکان فروش هاست رو به وبسایت اضافه کنم و کاری کنم که در وبسایت بتونم هاست و دامنه هم بفروشم و به علاوه این مسئله هم هست که باید کاربرا بتونن از حساب کاربری داخل وبسایتشون به تنظیمات هاست و یا دامنشون دسترسی پیدا کنند.
      لطفاً منو راهنمایی کنید.
      با تشکر
    • توسط iranibonsai
      درود، سایتی رو با وردپرس بالا آوردیم
      اما اکنون در صفحات داخلی سایت کد خطایی رو در بخش بالای مرورگر نشون میده که نتونستیم رفعش کنیم
      Warning: count(): Parameter must be an array or an object that implements Countable in /home3/zahrefzo/public_html/wp-includes/post-template.php on line 284
      این خطا قبلا وجود نداشت، نفهمیدم به چه علتی بوجود آمده و تو اینترنت هم چیز خاصی راجعبه رفعش پیدا نکردم، ممنون میشم اعلام نظر بفرمایید
      آدرس سایت :
      http://minelbeautysalon.com//
    • توسط sydvza
      باسلام ببخشید من کلیدواژه دکه را انتخاب کردم ولی در سرچ گوگل کلمه دکه وارد میکنم حتی جز 10 صفحه هم نیستم
      https://dackeh.com
    • توسط MajidRB
      سلام وقتتون بخیر.
      دوستان قالب placid رو به صورت های مختلف دانلود و نصب کردم ( هم از سایت های فارسی و قالب فارسی شده هم از منابع خود وردپرس)
      چه به شکل فارسی چه به شکل انگلیسی پست ها رو اونطوری که در پیش نمایش قالب نشان داده شده ، در صفحه اصلی نشان نمیده !
      عکس ها رو درج میکنم
      هیچ تنظیماتی نمانده که من دستکاری نکرده باشم
      فکر کنم باید چند خط کد کم یا زیاد بشه ( که بلد نیستم ! )
      خیلی ممنون میشم راهنمایی کنید
       


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