أحمد عبد الله2 نشر 21 أغسطس 2023 أرسل تقرير نشر 21 أغسطس 2023 السلام عليكم عملت regular expression تقبل الاحرف العربية والانجليزية والارقام لكن بها عيب /^(?=.{2,30}$)[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FFa-zA-Z 1-9 .,]+(?:\s[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FFa-zA-Z 1-9 .,]+)?$/ العيب هو انها لا تقبل الايموجي مثلا .. 👋😃 وانا اريدها ان تقبله .. كيف احل هذه المشكلة ؟ بعد البحث وجدت هذه (\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]) لكن لا اعلم كيف اضيفها 1 اقتباس
0 Mustafa Suleiman نشر 21 أغسطس 2023 أرسل تقرير نشر 21 أغسطس 2023 تستطيع الإعتماد على التعبير الحديث التالي: /\p{Emoji}/u ففي الدعم الأحدث للتعبيرات العادية في البيئة المتصفحة (مثل Chrome، Firefox، Safari، إلخ)، التحسينات تسمح لك باستخدام تعبيرات عامة تعتمد على خصائص يونيكود للتعرف على مجموعات محددة من الأحرف، مثل الإيموجي. خاصية \p{Emoji} escape تطابق أي حرف Unicode مصنف على أنه رمز تعبيري، والعلامة u تخبر محرك regular expression بتفسير النمط كسلسلة Unicode. وكمثال الكود التالي سيكشف عن جميع الرموز التعبيرية في السلسلة "Hello 😀 😄": const text = "Hello 😀 😄"; const regex = /\p{Emoji}/u; const matches = regex.exec(text); console.log(matches); // ['😀', '😄'] و هناك نطاق يمثل الأحرف العربية والإنجليزية والأرقام ويمكنك دمجه مع \p{Emoji}. النطاق المشترك للأحرف العربية والإنجليزية والأرقام هو \p{L}\p{N}. إليك الكود مع تضمين الأحرف العربية والإنجليزية والأرقام: const text = "Hello 😀 😄 مرحبا 123"; const regex = /[\p{L}\p{N}\p{Emoji}]+/gu; const matches = text.match(regex); console.log(matches); // ['Hello', '😀', '😄', 'مرحبا', '123'] اعتمدت على \p{L} للدلالة على الأحرف اللغوية (مثل العربية والإنجليزية) و\p{N} للأرقام، أما + تعني أنه يمكن أن يكون هناك تطابق لسلسلة من تلك الأحرف والأرقام، و u يشير إلى دعم اليونيكود. واستخدام text.match(regex) بدلاً من regex.exec(text) لأنك تريد العثور على جميع التطابقات في النص، ليس فقط أول تطابق. اقتباس
0 عمر قره محمد نشر 21 أغسطس 2023 أرسل تقرير نشر 21 أغسطس 2023 هذه هي العبارة الخاصة بالتحقق من وجود emoji : [\u{1F600}-\u{1F64F}] ويمكنك استخدامها كالتالي : const regex = /[\u{1F600}-\u{1F64F}]/gu; const text = "Hello 😊"; console.log(regex.test(text)); // true وبدمجها مع الاحرف العربية والانجليزية تصبح بالشكل : [\uD83C-\uDBFF\uDC00-\uDFFFa-zA-Z\u0627-\u064A\s]+ ويمكنك استخدامها في جافاسكريبت كالتالي : const regex = /^[\uD83C-\uDBFF\uDC00-\uDFFFa-zA-Z\u0627-\u064A\s]+$/; const text = "Hello 😊 مرحبا"; text.match(regex) اقتباس
السؤال
أحمد عبد الله2
السلام عليكم
عملت regular expression تقبل الاحرف العربية والانجليزية والارقام لكن بها عيب
/^(?=.{2,30}$)[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FFa-zA-Z 1-9 .,]+(?:\s[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FFa-zA-Z 1-9 .,]+)?$/
العيب هو انها لا تقبل الايموجي مثلا ..
👋😃
وانا اريدها ان تقبله .. كيف احل هذه المشكلة ؟
بعد البحث وجدت هذه
لكن لا اعلم كيف اضيفها
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.