Eloquent JavaScript


Word and string boundaries



Download 2,16 Mb.
Pdf ko'rish
bet85/165
Sana02.07.2022
Hajmi2,16 Mb.
#731657
1   ...   81   82   83   84   85   86   87   88   ...   165
Bog'liq
Eloquent JavaScript

Word and string boundaries
Unfortunately,
getDate
will also happily extract the nonsensical date 00-1-3000
from the string
"100-1-30000"
. A match may happen anywhere in the string, so
in this case, it’ll just start at the second character and end at the second-to-last
character.
If we want to enforce that the match must span the whole string, we can add
the markers
^
and
$
. The caret matches the start of the input string, whereas
the dollar sign matches the end. So,
/^\d+$/
matches a string consisting entirely
of one or more digits,
/^!/
matches any string that starts with an exclamation
mark, and
/x^/
does not match any string (there cannot be an
x
before the
start of the string).
If, on the other hand, we just want to make sure the date starts and ends
on a word boundary, we can use the marker
\b
. A word boundary can be the
start or end of the string or any point in the string that has a word character
(as in
\w
) on one side and a nonword character on the other.
155


console.log(/cat/.test("concatenate"));
// → true
console.log(/\bcat\b/.test("concatenate"));
// → false
Note that a boundary marker doesn’t match an actual character. It just
enforces that the regular expression matches only when a certain condition
holds at the place where it appears in the pattern.
Choice patterns
Say we want to know whether a piece of text contains not only a number but a
number followed by one of the words
pig
,
cow
, or
chicken
, or any of their plural
forms.
We could write three regular expressions and test them in turn, but there is
a nicer way. The pipe character (
|
) denotes a choice between the pattern to its
left and the pattern to its right. So I can say this:
let animalCount = /\b\d+ (pig|cow|chicken)s?\b/;
console.log(animalCount.test("15 pigs"));
// → true
console.log(animalCount.test("15 pigchickens"));
// → false
Parentheses can be used to limit the part of the pattern that the pipe operator
applies to, and you can put multiple such operators next to each other to express
a choice between more than two alternatives.

Download 2,16 Mb.

Do'stlaringiz bilan baham:
1   ...   81   82   83   84   85   86   87   88   ...   165




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish