Geek نشر 10 يوليو 2015 أرسل تقرير مشاركة نشر 10 يوليو 2015 لدي حقل خاص بالتعليقات علي المواضيع بالموقع واريد معرفة إذا كان المستخدم بدأ بكتابة حروف عربية ام إنجليزية، وجعل النص في محازاة اليمينإذا كان يكتب لغة عربية، و في محازاة اليسار إذا كان يكتب باللغة الإنجليزية.هل يوجد طريقة تقوم بهذا العمل في JavaScript؟ اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
1 عبدالرحمن احمد16 نشر 10 يوليو 2015 أرسل تقرير مشاركة نشر 10 يوليو 2015 بالتأكيد يوجد طريقة.هُناك دالة في JavaScript تُسمى test هذه الدالة تقوم بالبحث عن اي مُطابق بأستخدام التعابير القياسيهRegular Expression سنفترض أن حقل التعليق هو عباره عن عُنصر <textarea id="comment"></textarea> سنقوم بتتبُع هذا العُنصر بحيث إذا قام المستخدم ببدأ الكتابة يتم التحقق مباشرةً من أول حرف تم كتابتهُ وهذا سيتم باستخدام الحدث Event onkeyup.هكذا:var comment = document.getElementById('comment'); comment.onkeyup = function (){ var string = this.value; var substring = string.substring(0,1); var pattern = /[\u0600-\u06FF]/; this.dir = pattern.test(substring) ? 'rtl' : 'ltr'; };لنشرح ماذا حدث في هذا المثال بالتفصيل.اولاً قمنا بأستدعاء العُنصر textarea عن طريق ال id الخاص بهِ وقمنا بتخزينهُ في متغير باسم commentثم بعد ذلك قمنا بتتبُع هذا العُنصر عن طريق onkeyup بحيث عندما يقوم المستخدم بكتابة اي شيء نقوم بعمل الأتي:انشأنا متغير باسم string واسندنا له المحتوى الذي تم كتابتة عن طريق this.value وthis تعني متغير comment اي العُنصر textarea و value تعني القيمه التي بداخل العُنصر وهي عبارة عن نص.بعد ذلك انشأنا مُتغير جديد باسم substring وقمنا بجلب أول حرف فقط من النص المكتوب في حقل التعليق باستخدام دالة substring.ثم قمنا بانشاء متغير آخر باسم pattern وهذا عبارة عن كائن Object يحتوي علي رموز بأسلوب يُطابق التعابير القياسية وهذه التعابير هي جزئين اﻷول \u0600 وهذا يعني اول محرف في اللغة العربيه والثاني \u06FF هذا آخر محرف في اللغة العربية.وللمزيد حول هذه التعابير يمكنك التعرف عليها من هنافهذا يعني اننا سنبحث عن اي حرف في اللغة العربيه من بداية اول حرف في اللغة إلى آخر حرف.ثم قمنا اخيراً باستخدام دالة test للأختبار إذا كانت بداية اﻷحرف عربيه ام إنجليزية.ولسرعة الأستجابة قمت بالتحقق السريع مع الأختبار في الوقت نفسه. فإذا كان هناك أحرف عربيه سيتم تغيير قيمة السمه attribute dir إلى القيمة rtl أي المحازاة إلى اليمين.وإذا لم يتحقق الشرط ستكون القيمه ltr اي المحازاه إلى اليسار.وبهذا نكون قد تحققنا من وجود احرف باللغة العربيه في بداية النص ام لا.من فضلك تفقد الملف المٌرفق. index.html اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Anas R. نشر 13 يوليو 2015 أرسل تقرير مشاركة نشر 13 يوليو 2015 حل في غاية البساطة، دون الحاجة لكتابة أي كود JavaScript:<input type="text" dir="auto"/>طبعاً شريطة أن لا تكون قد ضبطت اتجاه العنصر مسبقاً باستخدام CSS. اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Geek
لدي حقل خاص بالتعليقات علي المواضيع بالموقع واريد معرفة إذا كان المستخدم بدأ بكتابة حروف عربية ام إنجليزية، وجعل النص في محازاة اليمين
إذا كان يكتب لغة عربية، و في محازاة اليسار إذا كان يكتب باللغة الإنجليزية.
هل يوجد طريقة تقوم بهذا العمل في JavaScript؟
رابط هذا التعليق
شارك على الشبكات الإجتماعية
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.