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