darsga qaytish

Manfiy bo'lmagan butun sonlarni toping

Butun sonlar qatori mavjud.

Faqat salbiy bo’lmaganlarni qidiradigan regexp yarating (nolga ruxsat beriladi).

Foydalanish misoli:

let regexp = /sizning regexp/g;

let str = "0 12 -5 123 -18";

alert(str.match(regexp)); // 0, 12, 123

Butun son uchun regexp \d+ dir.

Biz uning oldiga salbiy orqaga qarashni qo’yish orqali salbiy sonlarni chiqarib tashlashimiz mumkin: (?<!-)\d+.

Biroq, agar biz buni hozir sinab ko’rsak, yana bitta “ortiqcha” natijani payqashimiz mumkin:

let regexp = /(?<!-)\d+/g;

let str = "0 12 -5 123 -18";

console.log( str.match(regexp) ); // 0, 12, 123, 8

Ko’rib turganimizdek, u -18 dan 8 ga mos keladi. Buni chiqarib tashlash uchun regexp sonni boshqa (mos kelmaydigan) sonning o’rtasidan emas, balki boshidan boshlashini ta’minlashimiz kerak.

Buni boshqa salbiy orqaga qarashni belgilash orqali qilishimiz mumkin: (?<!-)(?<!\d)\d+. Endi (?<!\d) moslik boshqa raqamdan keyin boshlanmasligini ta’minlaydi, aynan bizga kerak bo’lgan narsa.

Biz ularni bu yerda bitta orqaga qarashga birlashtirishimiz ham mumkin:

let regexp = /(?<![-\d])\d+/g;

let str = "0 12 -5 123 -18";

alert( str.match(regexp) ); // 0, 12, 123