Defisi ndani ya seti katika usemi wa kawaida JavaScript
Defisi - pia ni ishara maalum ndani ya [ ]
(lakini nje - siyo). Ikiwa unahitaji defisi yenyewe kama ishara
- basi iweke mahali
ambapo haitaeleweka kama kitenganishi
cha kikundi.
Kwa nini hii ni muhimu: unaweza kutengeneza kikundi
cha herufi, bila kugundua mwenyewe. Kwa mfano,
hivi - '[:-@]' - unafikiria kuwa
unachagua kolon, defisi na alama ya @, lakini
kwa kweli inageuka kuwa kikundi cha herufi kati ya
: na @. Kikundi hiki kinabeba
herufi zifuatazo: ? < = > : ;
Zimetoka wapi? Kutoka kwenye jedwali la ASCII - kolon ina nambari ndogo kuliko ile ya alama ya @ - na hutengeneza kikundi. Yaani makundi yote hutengenezwa kulingana na jedwali la ASCII (kwa hiari hii inaweza kutumika).
Jinsi ya kukabiliana na hili: weka ishara ya defisi
mahali ambapo hakika haitaeleweka kama
ishara ya kikundi, kwa mfano, mwanzoni au mwishoni
(yaani baada ya [ au kabla ya ]).
Unaweza pia kuekebisha defisi - basi
itamaanisha yenyewe bila kujali
nafasi. Kwa mfano, badala ya [:-@] kuandika
[:\-@] - na hakutakuwa na kikundi tena, bali
zitakuwa ishara tatu - kolon, defisi na alama ya @
@.
Mfano
Katika mfano ufuatao muundo wa utafutaji ni huu:
tarakimu 1, kisha herufi kutoka 'a'
hadi 'z', kisha tarakimu 2:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[a-z]2/g, '!');
Kwa matokeo katika kibadilishaji kitaandikwa yafuatayo:
'! 1-2 ! !'
Mfano
Wacha sasa tuekebishe defisi. Kwa matokeo
muundo wa utafutaji ni huu: tarakimu 1, kisha
herufi 'a', au defisi, au herufi 'z',
kisha tarakimu 2:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[a\-z]2/g, '!');
Kwa matokeo katika kibadilishaji kitaandikwa yafuatayo:
'! ! 1c2 !'
Mfano
Inawezekana kubadilisha nafasi ya defisi, bila kuekebisha:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[az-]2/g, '!');
Kwa matokeo katika kibadilishaji kitaandikwa yafuatayo:
'! ! 1c2 !'
Mfano
Katika mfano ufuatao muundo wa utafutaji ni huu:
ishara ya kwanza - ni herufi ndogo au
defisi '-', kisha herufi mbili 'x':
let str = 'axx Axx -xx @xx';
let res = str.replace(/[a-z-]xx/g, '!');
Kwa matokeo katika kibadilishaji kitaandikwa yafuatayo:
'! Axx ! @xx'
Mfano
Katika mfano ufuatao muundo wa utafutaji ni huu:
ishara ya kwanza - ni herufi ndogo, kubwa
au defisi '-', kisha herufi mbili
'x':
let str = 'axx Axx -xx @xx';
let res = str.replace(/[a-zA-Z-]xx/g, '!');
Kwa matokeo katika kibadilishaji kitaandikwa yafuatayo:
'! ! ! @xx'
Mfano
Inawezekana kuweka defisi kati ya makundi mawili - hapo hakika haitafanya kikundi kingine:
let str = 'axx 9xx -xx @xx';
let res = str.replace(/[a-z-0-9]xx/g, '!');
Kwa matokeo katika kibadilishaji kitaandikwa yafuatayo:
'! ! ! @xx'
Kazi za Vitendo
Kuna mfuatano wa herufi:
let str = 'xaz xBz xcz x-z x@z';
Tafuta mifuatano yote kulingana na muundo ufuatao:
herufi 'x', herufi kubwa au ndogo
au defisi, herufi 'z'.
Kuna mfuatano wa herufi:
let str = 'xaz x$z x-z xcz x+z x%z x*z';
Tafuta mifuatano yote kulingana na muundo ufuatao:
herufi 'x', kisha au dola, au
defisi au alama ya kujumlisha, kisha herufi 'z'.