Computers, Programming
Javascript, kev qhia ua piv txwv, mus saib tsis tu ncua Qhia
Ua ntej lub advent ntawm hypertext lus, tab sis, theej, kom txog rau thaum nws tau los ua tseeb tias peb yuav tsum tsis txhob cia li saib, tab sis ua li ntawd nyob rau hauv tej yam tej yam kev mob, nyob rau hauv ib tug kev qhov chaw, nyob rau hauv lub hloov cov ntaub ntawv nyob rau hauv txoj cai ntau, li ib txwm nrhiav thiab hloov ua ib lub koom haum twg sophisticated programmer. Tsim masterpieces ntawm kos duab nrhiav nyob rau hauv lub cajmeem yam lus, thiab database excelled nyob rau hauv cov ntaub ntawv ntawm cov zauv tej yam kev mob, nruab nrog muab cov txheej txheem, chiv thiab lwm yam txhais tau tias ntawm loj qauv paub ntaub ntawv kev. Cov tsos ntawm cov kev qhia rau lub kiv puag ncig tsis ua, tab sis nws yog ib tug pab tau thiab yooj yim txoj kev uas yuav nrhiav tau thiab hloov ntaub ntawv. Piv txwv li, cov kab zauv JavaScript email ho piv rau npe ntawm cov neeg tuaj saib, tsis txhob ntsaws qhov website xa xov mus rau qhov twg ntxiv lawm chaw nyob.
Yuav kom hais tias ib tug JavaScript kev qhia yog zoo npaum li cas produmannnyh sequences indexOf () hu nyob rau hauv lub thav duab ntawm cov pa cyclic thiab tswv, yuav tsis tab sis hais tias nws tau ua tsab ntawv code yog compact, tab sis me ntsis nkag mus rau lub uninitiated, yuav ua tau unambiguously.
Nruas RegExp = + template engine
Tsis tu ncua kab zauv - yog ib tug template + engine. Tus thawj yog ua tau ib tug kev qhia - JavaScript khoom - tus RegExp, lub thib ob - ib tug qauv performer, thov nws mus rau txoj kab. Xyaw uas siv tsis tu ncua kab zauv rau txhua hom lus programming yog cov sib txawv. Thiab txawm hais tias tsis yog txhua txhua sib txawv tseem ceeb, nws yuav tsum tau borne nyob rau hauv lub siab, zoo li yuav tsum ua tib zoo xyuas cov kev qhia ua ntej rau nws cov lag luam.
Ib tug tshwj xeeb cim thaum uas sau ntawv tsis tu ncua kab zauv yog heev yooj yim mus use thiab heev, tiam sis nws yuav tsum tau kev kho mob, neatness thiab siab ntev los ntawm tus tsim tawm. By cim kev qhia cov qauv yuav tsum tau siv rau. Qhov no yog tsis yog ib tug fad, nws yog ib lub logic ntawm ib tug mechanism rau kev siv «JavaScript tsis tu ncua kab zauv."
kev qhia qauv
Pub ob qho kev xaiv:
var expOne = / ABC * / kuv;
var expTwo = RegExp ( "ABC *", "kuv");
Feem ntau nws siv cov thawj txoj kev. Nyob rau hauv lub thib ob cov ntaub ntawv, cov quotes, vim hais tias siv cov cim '\', nws yuav tsum tau dim los ntawm cov kev cai.
'Kuv' - chij qhia "cov ntaub ntawv loog". Koj kuj siv tau chij 'g' - «Ntiaj teb no nrhiav 'thiab' m '- ib tug multi-kab nrhiav.
Lub cim '/' yuav qhia tau ntau siv ib tug template.
Thaum pib thiab thaum xaus ntawm lub rau kev qhia
Cov '^' txhais lub cim (s) los ntawm uas pib cov kev qhia, thiab cov '$' txiav txim uas cim (s) yuav tsum muaj tsawg kawg. Koj yuav tsum tsis txhob xyaum ua tej yam nrog lawv hauv ib qho kev qhia, qhov uas lawv muaj ib tug txawv lub ntsiab lus.
Piv txwv li,
var eRegExp = tshiab RegExp (cRegExp, 'kuv');
var cRegRes = '';
var sTest = 'AbcZ';
yog hais tias (eRegExp.test (sTest)) {
cRegRes + = '- Yog';
} Lwm {
cRegRes + = '- Tsis muaj';
}
var dTestLine = document.getElementById ( 'scTestLine');
dTestLine.innerHTML = 'Qhia /' + cRegExp + '/ rau kab "' + sTest + '"' + cRegRes.
Lub caij 'scTestLine' yuav ua (cRegExp nce mus nce los muaj ib tug coj lub ntsiab lus):
qhia / ^ AbcZ $ / rau cov hlua "abcz" - Yes
Yog hais tias koj tshem tawm cov 'kuv' chij, qhov tshwm sim yog:
qhia / ^ AbcZ $ / rau cov hlua "abcz" - Tsis muaj
Tus txheem ntawm ib tug kev qhia
Ib tug kev qhia yog ib theem ntawm cov cim, uas yog qhov kev kawm ntawm cov kev tshawb fawb. Qhia / QWERTY / nrhiav nkag teb chaws yog no ib theem zuj zus:
qhia / QWERTY / rau txoj hlua "QWERTY" - Yes
qhia / QWERTY / rau txoj hlua "123qwerty456" - Yes
Cov '^' hloov yog kab zauv:
qhia / ^ QWERTY / rau txoj hlua "123qwerty456" - Tsis muaj
qhia / ^ QWERTY / rau txoj hlua "qwerty456" - Yes
Ib yam li ntawd, rau qhov kawg ntawm kab cim. Tsis tu ncua kab zauv pub rau taub hau: piv txwv li, [az], [AZ], [0-9] - tag nrho cov tsiaj ntawv ntawm cov tsiaj ntawv nyob rau hauv cov ntaub ntawv no los yog cov nuj nqis. Lavxias teb sab ntawv tej zaum kuj yuav tau siv, tab sis yuav tsum xyuam xim rau cov encoding ntawm cov hlua (uas yog nrhiav uas yog nrhiav) thiab cov nplooj ntawv. Feem ntau Lavxias teb sab ntawv, raws li tau zoo raws li tus cim tshwj xeeb, nws yog preferable teem codes.
Thaum txoj kev ua ib kev qhia yuav hais kom meej xaiv rau lub xub ntiag ntawm tej yam cim nyob rau hauv ib tug kev qhov chaw, nrog rau lawv cov xov tooj muab raws li nram no: '*' = 0 repetition los yog ntau tshaj lub sij hawm; '+' = 1 los yog ntau tshaj repetition lub sij hawm; {1} yog tib yam, raws li '+'; {N} = repetition raws nraim n lub sij hawm; {N,} = n repetition lub sij hawm los yog ntau tshaj; {N, m} = repetition ntawm n mus m lub sij hawm.
Siv nkhaus, koj yuav qhia lub cim teev txog cov kev xaiv. Nws zoo li no. [Abcd] = [ad] = txhua txhua plaub lub cim: 'ib', 'b', 'c' los yog 'd'. Koj yuav tau qhia nkawd. Tej cim uas tsis yog cov neeg teev nyob rau hauv lub teeb: [^ abcd] = tej lub cim uas tsis yog 'ib', 'b', 'c' los yog 'd'. '?' Nws qhia tau hais tias nyob rau ntawm no point lub cim tsis tau. '.' qhia txog tej lub cim uas tsis yog qhia hauv lub newline. Qhov no '\ n', '\ r', '\ u2028' los yog '\ u2029'. Cov kev qhia '\ s * | \ S *' = '[\ s | \ S] *' txhais tau tias cov kev tshawb fawb rau tej lub cim, xws li newlines.
Yooj yim zog versions ntawm kev qhia
Cov kev qhia '[\ s | \ S] *' - nrhiav qhov chaw, los yog tsis muaj thereof, uas yog tag nrho cov uas yog nyob rau hauv txoj kab. Nyob rau hauv cov ntaub ntawv no, lub cim '\ s' qhia ib qhov chaw, thiab '\ S' - nws tsis tuaj kawm ntawv.
Ib yam li ntawd, koj yuav siv '\ d' mus nrhiav tus zauv lej tom qab, thiab '\ D' nrhiav tau ib tug uas tsis yog-numeric ua cim. Cim '\ f', 'r' thiab '\ n' sib haum mus rau hauv daim ntawv-pub, carriage rov qab thiab kab noj.
Lub tab cim - '\ t', ntsug - '\ v. Cov ntawv '\ w' pom tej Latin tsiaj ntawv cim (cov tsiaj ntawv, lej tom qab, thiab lub Underscore cim) = [A-ZA-z0-9_].
Cov ntawv '\ W' yog sib npaug rau [^ A-ZA-z0-9_]. Qhov no txhais tau tias tej lub cim uas tsis yog ib tsab ntawv ntawm cov tsiaj ntawv, tus naj npawb, los yog '_'.
Nrhiav cim '\ 0' = nrhiav NUL cim. Nrhiav '\ xHH' los yog '\ uHHHH' = Nrhiav cim code los yog HHHH HH feem. H - hexadecimal lej.
Pom zoo hais thiab coding ntawm kev qhia
Tej kev qhia no yog ib qho tseem ceeb mus ua tib zoo soj ntsuam nyob rau txawv versions ntawm kab.
Nrog rau cov kev ntawm kev tsim ib kev qhia yuam kev no yuav yuav me, tab sis nws yuav tsum nco ntsoov yuav khaws cia nyob rau hauv lub siab hais tias lawv tus kheej kev paub ntawm cov kev cai ntawm kev sau ntawv tsis tu ncua kab zauv yuav tsis muaj tseeb, tshwj xeeb tshaj yog thaum lub "tsis tu ncua lub caij" yog kis los ntawm ib yam lus mus rau lwm lub.
Xaiv ntawm classic (pes tsawg hais) thiab ib tug simplified version ntawm ib tug kev qhia, nws yog zoo dua rau xav tus thawj. Tom qab tag nrho cov, nyob rau hauv lub classics yog yeej ib txwm kom meej meej hais tias ob qho tag nrho nrhiav. Yog hais tias cov kev qhia los yog nrhiav txoj hlua muaj Lavxias teb sab ntawv, yuav tsum ua rau ib tug tib encoding tag nrho cov kab thiab cov nplooj ntawv nyob rau hauv uas ua hauj lwm nrhiav JavaScript-code ua ib tug kev qhia.
Thaum muaj ib tug cim ua, uas tsis yog-Latin ntawv, nws yuav ua rau kev txiav txim zoo xav txog ib tug hais txog ntawm cov ua cim lis dej num, tsis yog tus cim rau lawv tus kheej.
Thaum siv cov kev tshawb fawb algorithms nyob rau hauv JavaScript kev qhia yuav tsum tau ua tib zoo soj ntsuam. Nws yog tshwj xeeb yog ib qho tseem ceeb los tswj cov ua cim encoding.
Lub koov nyob rau hauv cov kev qhia
Lub nkhaus txhais cov kev xaiv rau lub cim, uas yuav tsum muaj los yog tej zaum yuav tsis muaj nyob rau hauv qhov chaw, thiab round - ib theem zuj zus variants. Tab sis qhov no tsuas yog ib tug general txoj cai. Los ntawm nws muaj yog tsis muaj tsuas yog, tab sis muaj ib tug ntau yam ntawm daim ntawv sau npe.
var cRegExp = "[az] * (png | jpg | gif).";
var eRegExp = tshiab RegExp (cRegExp, 'kuv');
var cRegRes = '';
var sTest = 'picture.jpg';
yog hais tias (eRegExp.test (sTest)) {
cRegRes + = '- Yog';
} Lwm {
cRegRes + = '- Tsis muaj';
}
tau:
/[az]*.(png|jpg|gif)/ qhia rau cov kab "picture.jpg" - Yes
/^[ad][az]*.(png|jpg|gif)/ qhia rau "picture.jpg" kab - Tsis muaj
/^[ad][az]*.(png|jpg|gif)/ qhia rau cov kab "apicture.jpg" - Yes
/^[ad][az]*.(png|jpg|gif)/ qhia rau "apicture.jg" kab - Tsis muaj
Nws yuav tsum tau muab sau tseg tias tag nrho cov, ces tus cim tej zaum yuav tam sim no pes tsawg lub sij hawm. Qhov no txhais tau hais tias "tsis tu ncua lub caij" tej zaum yuav ua hauj lwm nyob rau hauv kev npaj txhij txog txoj kev kawg.
Kos RegExp - kuaj email
Thaum tsis tu ncua JavaScript qhia tau ob txoj kev, kev kuaj thiab exec, thiab yuav siv tau nyob rau hauv cov kab khoom (hlua) nyob rau hauv lawv txoj kev (zog): search, split, hloov thiab match.
xeem txoj kev twb tau pom hais tias, nws tso cai rau koj mus saib lub correctness ntawm cov kev qhia. Txoj kev tshwm sim: muaj tseeb / cuav.
Xav txog cov nram qab no JavaScript tsis tu ncua kab zauv. Kos email ntawm tus xov tooj ntawm "yooj yim, tab sis yeej":
var eRegExp = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s @ "] +) *) | (". + ")) @ ((\ [[0-9] {1,3} \ [0-9] {1,3} \ [0-9] {.. . 1,3} \ [0-9] {1,3}]) | (([a-zA-Z \ -0-9] + \.) + [a-zA-Z] {2}) ) $ /;
ib txoj hlua var sTest ='SlavaChip@sci.by 'muab yeej muaj tseeb, ces muaj yog li no txoj hlua yog qhov tseeb email-qhov chaw nyob. Qhov tshawb tau ua los ntawm eRegExp.test (sTest).
Tswv yim siv: kev kho mob ntawm e-Mail
Exec txoj kev muab cov zis array, hu rau:
var aResult = eRegExp.exec (sTest);
cRegRes = '
' + aResult.length + '
';
rau (var kuv = 0; i
';
}
Nws muab cov nram qab no:
9
Slava.Chip@sci.by
Slava.Chip
Slava.Chip
.Chip
undefined
sci.by
undefined
sci.by
sci.
Lwm yam kev ua hauj lwm zoo li ntawd. Nws yog pom zoo kom mus saib lawv tawm koj tus kheej. Txoj kev loj hlob thiab kev siv cov kev kab zauv, nws yog ntshaw kom ua hauj lwm nyob rau hauv kev xyaum, cov kev cai luam yog tsis ib txwm hu no.
Nrov "tsis tu ncua lub caij"
JavaScript kev qhia muab mus Email tsis tau tsuas yog muaj ntau ntau yooj yim xaiv. Piv txwv li, /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. Txawm li cas los, qhov no embodiment yuav siv sij hawm mus rau hauv tus account tsis yog txhua txhua embodiments ntawm lub email chaw nyob cov ntaub ntawv.
Ntawm cov hoob kawm, koj yuav tsum saib qhov kev paub ntawm lug txhawb cov miv, rau kev tsom xam yuav ua li cas lawv npaj ua ntej mus tsim lawv tus kheej nyob rau hauv JavaScript tsis tu ncua kab zauv. Tab sis muaj ib co teeb meem. Peb yuav tsum tsis txhob hnov qab hais tias ib tug JavaScript tsis tu ncua kab zauv (piv txwv ntawm qhov thaum cov luam) yuav theej tawm qhov tseem ceeb cim: '\', '/' los yog quotes. Qhov no yuav ua rau yuam kev, uas koj yuav nrhiav ntev.
Nws yog ib qho tseem ceeb coj mus rau hauv tus account lub niaj zaus "tib neeg dimension." Tom qab formal JavaScript kev qhia rau cov xov tooj, uas tej zaum yuav cov qhua (tus neeg), nws yog muab nyob rau hauv ntau txoj kev: 123-45-67, (29) 1234567, 80291234567 los yog 375291234567. Thiab nws yog tag nrho cov tib tooj. Sau ntau yam qauv tsis yog ib txwm tau, thiab txhav fixation ntawm cov kev cai rau kev sau ntawv xov tooj tej zaum yuav tsim ruaj tsis xis nyob los yog txwv tsis pub. Option / ^ \ d [\ d \ (\) \ -] {4,14} \ d $ / kuv yog haum rau feem ntau tus neeg mob koj saib koj lub xov tooj tus naj npawb.
Yog hais tias koj xav mus ua ib tug JavaScript tsis tu ncua kab zauv, tsuas xaus-npawb tsab tshev, txawm xws li ib tug yooj yim cov ntaub ntawv yuav tsum tau qhia kom meej. Nws yuav tsum raug xam tias yog ib qho integer los yog fractional, scientific cim, los yog dab tsi, los yog tsis zoo pes tsawg. Koj yuav tau coj mus rau hauv tus account lub hav zoov ntawm cov txiaj cim, tus xov tooj ntawm tug lej tom qab tom qab tus zauv point thiab cov division ntawm tag nrho cov feem ntawm tus xov tooj rau lub triad.
Qhia / ^ \ d + $ / kuv saib xwb tus xov tooj thiab /^\d+\.\d+$/i qhia pub rau cov kev siv ntawm ib tug taw tes rau qhia cov fractional ib feem ntawm tus xov tooj.
Nyob rau hauv JavaScript xyuas tsis tu ncua kab zauv yuav siv tau los qhia lub hom ntawm lub zog tswv yim ntaub ntawv, uas yog ib qho tseem ceeb, tshwj xeeb yog thaum nkag mus kawm rau profiles, passport cov ntaub ntawv, thiab kev cai lij choj chaw nyob t. D.
Kos rau lub hnub - yooj yim mus rau lub complex
Xav txog lwm JavaScript tsis tu ncua kab zauv. Piv txwv rau hnub tim, raws li rau tus xov tooj ntawm cov xov tooj sawv cev xaiv ntawm rigidity thiab yooj. Hnub ntawm kev tshwm sim - ib tug ntawm cov tseem ceeb cov ntaub ntawv, uas feem ntau yuav tsum tau muab. Tab sis kho cov tswv yim nyob rau hauv ib lub hom: "hnub-hli-xyoo 'los yog' d.m.gg 'feem ntau ua rau cov neeg dissatisfaction. Cov kev hloov ntawm lub tswv yim teb ntawm lub hnub-rau-lub hli, tag nrho ntawm classic HTML-daim ntawv no, yuav tsis muab qhov chaw thaum koj nkag mus rau tsuas yog ib tug lej, thiab lub thib ob lub tswv yim yuav tsis yooj yim. Piv txwv li, nyob rau hauv lub teb ntawm lub hnub nws twb qhia 3 thiab lub xov tooj tom ntej 2 yuav hloov tsis tau tus thawj, thiab yog ntaus nqi mus rau nws 32, uas, ntawm chav kawm, yuav ua rau yooj yim.
Efficiency thiab kev kab ntsab ntawm kev kab zauv yeej tseem zoo nyob ntawm seb cov kev siv ntawm ib tug sib tham nrog cov qhua. Nyob rau hauv ib cov ntaub ntawv, yuav qhia cov hnub nws yog hu los siv ib cov tswv yim teb ntawm daim ntawv, nyob rau lwm yam rooj plaub no nws yog tsim nyog los muab rau ntau teb rau ib hnub, lub hli thiab xyoo. Tab sis, ces tej yam ntxiv "nqi ntawm code" mus xyuas cov leap xyoo, tus xov tooj ntawm lub hlis, tus xov tooj ntawm hnub nyob rau hauv lawv.
Nrhiav thiab hloov, kev qhia kev nco
JavaScript hloov (kev kab zauv) siv cov qauv ntawm cov hlua kwv, thiab tso cai rau peb mus nrhiav tau cov nqi thiab hloov nws tam sim ntawd. Qhov no pab tau rau txoj kev kho typing uas tsis, kho kom raug tus txheem ntawm lub daim ntawv teb thiab rau converting cov ntaub ntawv los ntawm ib tug kev nthuav qhia hom ntawv mus rau lwm lub.
var cRegExp = / ([a-z] +) \ s ([a-z] +) \ s ([a-z] +) / kuv; // thaum searching yog peb 'tsiaj ntawv'
var sTest = 'no tsab xov xwm no zoo!';
var cRegRes = sTest.replace (cRegExp, "$ 2, $ 3, $ 1");
var dTestLine = document.getElementById ( 'scTestLine');
dTestLine.innerHTML = 'qhia' + cRegExp + 'rau cov hlua "' + sTest + '" tig:' + cRegRes;
tshwm sim:
qhia / ([az] +) \ s ([az] +) \ s ([az] +) / kuv rau txoj kab "no tsab xov xwm no zoo!" tawm: tsab xov xwm yog zoo, qhov no!
Thaum ua tau zoo txhua khub koov khw muag khoom cov nyob rau hauv lub 'nce mus nce los' $ n, nyob qhov twg n - tus naj npawb ntawm bracket officers ($ 1, $ 2, ...). Tsis zoo li cov pa, ntawm no nce mus nce los numbering yog 1, tsis 0.
General tswv yim pom zoo
Kev qhia simplifies code, tab sis lub sij hawm los tsim nws feem ntau ua ib tug txawv. Koj yuav tau pib nrog tej yam yooj yim designs thiab ces ua mus ua ke rau hauv ntau cov kab zauv. Koj muaj peev xwm siv ntau yam hauv internet cov kev pab cuam mus kuaj tsis tu ncua kab zauv los yog tshwj xeeb hauv zos cov cuab yeej.
Qhov zoo tshaj plaws kev xaiv yuav tsim lawv tus kheej cov tsev qiv ntawv ntawm kev kab zauv thiab lawv tus kheej cov cuab yeej los mus ntsuam xyuas tshiab uas. Qhov no yog qhov zoo tshaj plaws txoj kev uas yuav ntsaub qhov kev paub thiab kawm kom paub yuav ua li cas sai sai tsim txhim khu kev qha thiab nyiam tsim.
Siv repetition ntawm cov cim thiab cov hlua, uas yog, tus cim tshwj xeeb '*', '+' thiab kev zawm hniav, cim tias seb thaum lub xov tooj ntawm repetitions yuav tsum tau ua los ntawm tej ntsiab cai ntawm simplicity thiab expediency. Nws yog ib qho tseem ceeb kom paub hais tias ib tug kev qhia rau thaum pib ntawm nws cov hauj lwm, thiab kom tau txais cov kev tshwm sim yog nkaus nyob rau hauv lub hwj chim ntawm lub cav siv los ntawm lub browser. Tsis yog txhua txhua hom lus yog sib npaug rau JavaScript. Txhua browser yuav coj lawv tus kheej nyiam nyob rau hauv tus txhais lus los ntawm kev kab zauv.
Compatibility yog tsis yog cov nplooj ntawv thiab style los xij, rau kev kab zauv, nws kuj muaj ua li cas. Cov nplooj ntawv siv JavaScript, yuav pom tau tias ib tug zoo-ua tau hauj lwm tsuas yog thaum nws tau ntse ua hauj lwm nyob rau hauv ib tug ntau yam ntawm browsers.
JavaScript, txoj hlua thiab RegExp
Los ntawm txoj cai ua hauj lwm nyob rau tus thov kev pab theem, uas yog, nyob rau hauv lub qhua browser nyob rau hauv JavaScript, nws yuav tsum tau siab txawj tus tsim tawm. Ntev txaus koj muaj lub sij hawm rau debug JavaScript-code browser tus kheej nyiaj los yog nrog kev pab los ntawm peb-tog extensions, code editors, ywj siab cov kev pab cuam.
Txawm li cas los, tsis yog txhua txhua tus neeg mob, tus debugger tau ko thiab muab zoo them nyiaj yug rau tus tsim tawm, ib tug sai yuam kev nrhiav kom tau, ntes bottlenecks. Lub sij hawm thaum lub computer tau raug teem nyob rau lub laij, nyob rau hauv lub deb dhau los. Tam sim no, them tshwj xeeb mloog rau cov lus qhia thiab kab khoom tau tuaj mus ua si ib tug tseem ceeb luag hauj lwm. Tus nab npawb ntawm steel hlua, thiab lawv yeej muaj tseeb xwm lawv qhia tsuas yog nyob rau lub sij hawm thiab qhov chaw.
Tsis tu ncua kab zauv txhawb tau ntawm cov kab, tab sis yuav tsum tau nws tus kheej hwm. Debug RegExp nyob rau hauv nws cov hauj lwm, txawm yog hais tias nws yog ua tau rau simulate, tsis dhau nthuav lub tswv yim.
To taub cov qauv thiab cov logic ntawm lub RegExp kwv, lub ntsiab lus tus kwv txoj hlua, cov syntax thiab semantics ntawm JavaScript - ib tug yeej muaj tseeb kev ruaj ntseg thiab ruaj ntseg code, lub ruaj lub lag luam ntawm txhua phab ntawv thiab qhov chaw raws li ib tug tag nrho.
Similar articles
Trending Now