12. november 2002 - 11:42Der er
6 kommentarer og 1 løsning
Cirklens ligning i Javascript
Jeg ved kun meget lidt om reg.exp., og vil derfor høre om, der er der kan fortælle mig, hvordan jeg i javascript kan afgøre, om en streng er skrevet med 'syntaxen' "(x-n)^2+(y-n)^2=n" (hvor 'n' er et vilkårligt tal; ikke kun heltal)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Det ser måske lidt uhyggeligt ud, men kigger man nærmere efter er det ikke så galt endda. Vi starter med del-udtrykket for et tal (det du kalder 'n', jeg går ud fra at der kan være tale om forskellige tal), det går identisk igen 3 gange undervejs:
[0-9]+([,.][0-9]+)?
Et positivt antal cifre, efterfulgt af 0 eller 1 forekomst af: komma-eller-punktum efterfulgt af et positivt antal cifre.
Vi har altså
^\(x[-+] Begyndelsen af strengen fulgt af (x fulgt af + eller -
? betyder '0 eller 1 forekomst af det umiddelbart foregående', her indholdet af parantesen.
^ forrest betyder 'stregens begyndelse', som det er brugt her, betyder det at der ikke må være nogetsomhelst i strengen før den første ( Afsluttende $ har samme betydning for slutningen af strengen.
Samtlige anvendelser af \ er for at 'escape' tegn, der ellers har specialbetydning regulære udtryk.
var regex = new RegExp( /^\(x[-+][0-9]+([,.][0-9]+)?\)\^2\+\(y[-+][0-9]+([,.][0-9]+)?\)\^2=[0-9]+([,.][0-9]+)?$/ );
var txt = <den streng der skal undersøges>;
if (txt.match(regex)) { // matcher } else { // matcher ikke }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.