# شاهد تعبير منتظم كلمات يوقف

**URL:** https://meta.discourse.org/t/watched-word-regular-expression-crash/275701
**Category:** Bug
**Tags:** watched-words
**Created:** [18 أغسطس 2023، 1:52م UTC](https://meta.discourse.org/t/watched-word-regular-expression-crash/275701 "2023-08-18T13:52:36Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [18 أغسطس 2023، 1:52م UTC](https://meta.discourse.org/t/watched-word-regular-expression-crash/275701/1 "2023-08-18T13:52:36Z")

</div>

هذه مشكلة مزدوجة.\n\nأولاً، يتسبب خطأ في تعبير عادي في حدوث خطأ 500 في الخادم عند نشر أي مشاركة.\nراجع أيضًا تقرير الخطأ السابق هذا [Invalid regular expressions in 'Watched Words' makes no watched word work](https://meta.discourse.org/t/invalid-regular-expressions-in-watched-words-makes-no-watched-word-work/192160) (السيناريو: أسوأ).\n\nثانياً، أصبح التعبير العادي الذي كان صحيحًا سابقًا والذي يهرب شرطة (-) يُنظر إليه الآن على أنه غير صحيح. لذلك، حيث كان `\\-` يعمل سابقًا قبل الإصدار المستقر 3.1.0، فإنه يتسبب الآن في خطأ فادح.\n\nمن المحتمل أن يحدث هذا [بسبب تمكين Unicode في `9a27803`](https://github.com/discourse/discourse/commit/9a2780397faac09daa1012cd20667e1a30661ae2).\n\nراجع [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular\_expressions/Cheatsheet\n\n\u003e](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet%5Cn%5Cn%5Cu003e) لاحظ أن بعض الأحرف مثل: و - و @ وما إلى ذلك، ليس لها معنى خاص عند الهروب منها أو عند عدم الهروب منها. ستكون تسلسلات الهروب مثل `\\:` و `\\-` و `\\@` مكافئة لنظائرها الحرفية غير المهربه في التعبيرات العادية. ومع ذلك، في التعبيرات العادية مع علامة [unicode](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions#advanced_searching_with_flags)، سيؤدي ذلك إلى خطأ _هروب هوية غير صالح_. يتم ذلك لضمان التوافق مع الإصدارات السابقة مع التعليمات البرمجية الموجودة التي تستخدم تسلسلات هروب جديدة مثل `\\p` أو `\\k`.\n\nولكن سيكون من الجيد لو كان هناك معالج استثناء هنا.

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [22 أغسطس 2023، 12:12ص UTC](https://meta.discourse.org/t/watched-word-regular-expression-crash/275701/4 "2023-08-22T00:12:35Z")

</div>

لقد أعطينا الأولوية لهذا الآن، وسنتعامل معه في الأسابيع الأربعة القادمة.

---

<div class="post-metadata">

### Author: ![nbianca](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nbianca/32/157984_2.png) [@nbianca](https://meta.discourse.org/u/nbianca)
#### Post date: [1 نوفمبر 2023، 7:55م UTC](https://meta.discourse.org/t/watched-word-regular-expression-crash/275701/23 "2023-11-01T19:55:38Z")

</div>

> [@RGJ](#):
>
> أولاً، يتسبب خطأ في تعبير عادي في حدوث خطأ في الخادم 500 عند نشر أي مشاركة.

تم إصلاح هذا:

 ![image](https://global.discourse-cdn.com/meta/original/4X/2/4/5/2459a333f816cde3e5a8cf1f038c02f003506e6f.png)

 ![image](https://global.discourse-cdn.com/meta/original/4X/2/7/1/27134ec713778f69e3b713470552b7cceb7e3ef8.png)

> [@RGJ](#):
>
> ثانياً، تعبير عادي كان صحيحاً سابقاً والذي يقوم بعمل escape للشرطة (-)، يُنظر إليه الآن على أنه غير صحيح. لذا، حيث كان `\-` يعمل قبل الإصدار المستقر 3.1.0، فإنه يتسبب الآن في خطأ فادح.

أنا أبحث حاليًا عن طريقة لتمكين التحقق من صحة تعبيرات جافاسكريبت العادية من جانب روبي. آمل أن يكون لدي إصلاح جاهز قريبًا.

---

<div class="post-metadata">

### Author: ![tumbano](https://avatars.discourse-cdn.com/v4/letter/t/7ea924/32.png) [@tumbano](https://meta.discourse.org/u/tumbano)
#### Post date: [6 نوفمبر 2023، 9:47ص UTC](https://meta.discourse.org/t/watched-word-regular-expression-crash/275701/24 "2023-11-06T09:47:52Z")

</div>

بدأت في تلقي الخطأ 500 عند نشر مشاركات جديدة منذ تحديث حديث (الأسبوع الماضي). كانت هناك أيضًا أخطاء متعلقة بالبريد الإلكتروني (في sidekiq، كانت متعلقة بالكلمات المراقبة). لاحظت هذا اليوم فقط. حاولت تشغيل تحديث ولكن الخطأ 500 عند النشر كان لا يزال موجودًا. الحل الوحيد الذي وجدته حتى الآن هو إزالة جميع الكلمات المراقبة.

---

<div class="post-metadata">

### Author: ![nbianca](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nbianca/32/157984_2.png) [@nbianca](https://meta.discourse.org/u/nbianca)
#### Post date: [6 نوفمبر 2023، 10:25ص UTC](https://meta.discourse.org/t/watched-word-regular-expression-crash/275701/25 "2023-11-06T10:25:01Z")

</div>

لا يمكنني استنساخه بدون أي معلومات إضافية. هل لديك إعداد الموقع `watched_words_regular_expressions` ممكّنًا؟ هل يمكنك تحميل قائمة الكلمات التي تراقبها حتى أتمكن من الاختبار؟ أو ربما تحقق من سجلاتك ([https://your-forum/logs](https://your-forum/logs)) وانشر هنا تتبعات المكدس المتعلقة بالكلمات التي تراقبها.

---

<div class="post-metadata">

### Author: ![tumbano](https://avatars.discourse-cdn.com/v4/letter/t/7ea924/32.png) [@tumbano](https://meta.discourse.org/u/tumbano)
#### Post date: [6 نوفمبر 2023، 10:50ص UTC](https://meta.discourse.org/t/watched-word-regular-expression-crash/275701/26 "2023-11-06T10:50:57Z")

</div>

هل لديك إعداد الموقع `watched_words_regular_expressions` ممكّن؟ → لا

أجريت بعض الاختبارات، يبدو أنها تحدث فقط مع \*الأحرف البديلة  
asteriskexampleasterisk → هذا يعطي خطأ 500  
example → يتم استبداله بشكل صحيح

النجمة هي \*

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [29 نوفمبر 2023، 6:22ص UTC](https://meta.discourse.org/t/watched-word-regular-expression-crash/275701/27 "2023-11-29T06:22:19Z")

</div>

@RGJ هل تشعر أن المسألة الأصلية قد تم تناولها؟

لقد قمنا بدمج طلب السحب هذا:

> <https://github.com/discourse/discourse/pull/24163>
>
> \- Ignore only invalid words, not all words if one of them is invalid
> 
> \- The na…ming scheme for methods was inconsistent
> 
> \- Optimize regular expressions

---

<div class="post-metadata">

### Author: ![j.jaffeux](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j.jaffeux/32/60297_2.png) [@j.jaffeux](https://meta.discourse.org/u/j.jaffeux)
#### Post date: [28 يونيو 2024، 7:47م UTC](https://meta.discourse.org/t/watched-word-regular-expression-crash/275701/30 "2024-06-28T19:47:04Z")

</div>


