لماذا تستبدل وظيفة الاستبدال في Javascript المثيل الأول فقط
عند استخدام استبدال () في JavaScript، قد تواجه موقفًا حيث يتم الاستبدال فقط المثيل الأول لسلسلة الهدف. ينبع هذا التناقض الواضح من السلوك الافتراضي للوظيفة.
فهم سلوك استبدال()
افتراضيًا، يقوم استبدال() بالبحث عن التواجد الأول لسلسلة فرعية محددة واستبداله ضمن سلسلة. إذا كنت تريد استبدال جميع الحالات، فأنت بحاجة إلى تحديد علامة g (العالمية) في التعبير العادي.
مثال: تعيين علامة g
فكر في المثال الواردة في السؤال:
var date = $('#Date').val(); // Gets value "12/31/2009" var id = 'c_' date.replace("/", ''); // Replaces only the first "/", resulting in "c_1231/2009"
لاستبدال كافة مثيلات الشرطة المائلة للأمام (/)، استخدم علامة g:
var id = 'c_' date.replace(new RegExp("/", "g"), ''); // Replaces all "/" with "", resulting in "c_12312009"
بدلاً من ذلك، يمكنك استخدام بناء جملة أبسط:
var id = 'c_' date.replace(/\//g, ''); // Equivalent to the previous line
من خلال تعيين علامة g، يطابق التعبير العادي جميع تكرارات السلسلة الهدف ويستبدلها بالقيمة الجديدة المحددة. يضمن هذا السلوك استبدال كافة المثيلات على النحو المنشود.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3