JavaScript RegExp-objekt


Indholdsfortegnelse

    Vis indholdsfortegnelse


Et regulært udtryk er en sekvens af tegn, der danner en søgemønster.

Søgemønsteret kan bruges til tekstsøgning og teksterstatning operationer.


Hvad er et regulært udtryk?

Et regulært udtryk er en sekvens af tegn, der danner en søgning mønster.

Når du søger efter data i en tekst, kan du bruge dette søgemønster til at beskrive, hvad du søger efter.

Et regulært udtryk kan være et enkelt tegn eller et mere kompliceret mønster.

Regulære udtryk kan bruges til at udføre alle typer tekstsøgning og teksterstatning-operationer.

Syntaks

/pattern/modifiers;

Eksempel

/w3schools/i;

Eksempel forklaret:

/w3schools/i er et regulært udtryk.

w3schools er et mønster (skal bruges i en søgning).

i er en modifikator (ændrer søgningen, så den ikke skelner mellem store og små bogstaver).


Brug af strengmetoder

I JavaScript bruges regulære udtryk ofte med de to strenge metoder: search() og erstat().

Metoden search() bruger et udtryk til at søge efter en match og returnerer kampens position.

Metoden replace() returnerer en ændret streng, hvor mønster udskiftes.


Brug af streng search() med en streng

Metoden search() søger i en streng efter en specificeret værdi og returnerer matchets position:

Eksempel

Brug en streng til at søge efter "W3schools" i en streng:

let text = "Visit W3Schools!";
let n = text.search("W3Schools");

Resultatet i n bliver:

6

Prøv det selv →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript String Methods</h1>
<p>Search a string for &quot;W3Schools&quot;, and display the position of the match:</p>

<p id="demo"></p>

<script>
let text = "Visit W3Schools!"; 
let n = text.search("W3Schools");
document.getElementById("demo").innerHTML = n;
</script>

</body>
</html>


Brug af streng search() med et regulært udtryk

Eksempel

Brug et regulært udtryk til at lave en søgning uden store og små bogstaver efter "w3schools" i en streng:

let text = "Visit W3Schools";
let n = text.search(/w3schools/i);

Resultatet i n bliver:

6

Prøv det selv →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Regular Expressions</h2>

<p>Search a string for "w3Schools", and display the position of the match:</p>

<p id="demo"></p>

<script>
let text = "Visit W3Schools!"; 
let n = text.search(/w3Schools/i);
document.getElementById("demo").innerHTML = n;
</script>

</body>
</html>



Brug af streng erstat() med en streng

Metoden replace() erstatter en specificeret værdi med en anden værdi i en streng:

let text = "Visit Microsoft!";
let result = text.replace("Microsoft", "W3Schools");

Prøv det selv →

<!DOCTYPE html>
<html>

<body>

<h1>JavaScript String Methods</h1>
<p>Replace &quot;Microsoft&quot; with &quot;W3Schools&quot; in the paragraph below:</p>

<button onclick="myFunction()">Try it</button>

<p id="demo">Please visit Microsoft!</p>

<script>
function myFunction() {
  let text = document.getElementById("demo").innerHTML;
  document.getElementById("demo").innerHTML =
  text.replace("Microsoft","W3Schools");
}
</script>

</body>
</html>



Brug streng erstat() med et regulært udtryk

Eksempel

Brug et regulært udtryk, der ikke skiller mellem store og små bogstaver, til at erstatte Microsoft med W3Schools i en streng:

let text = "Visit Microsoft!";
let result = text.replace(/microsoft/i, "W3Schools");

Resultatet i res bliver:

Visit W3Schools!

Prøv det selv →

<!DOCTYPE html>
<html>

<body>

<h2>JavaScript String Methods</h2>

<p>Replace "Microsoft" with "W3Schools" in the paragraph below:</p>

<button onclick="myFunction()">Try it</button>

<p id="demo">Please visit Microsoft!</p>

<script>
function myFunction() {
  let text = document.getElementById("demo").innerHTML;
  document.getElementById("demo").innerHTML =
  text.replace(/microsoft/i, "W3Schools");
}
</script>

</body>
</html>

lagde du mærke til det?

Regulære udtryksargumenter (i stedet for strengargumenter) kan bruges i metoderne ovenfor.
Regulære udtryk kan gøre din søgning meget mere kraftfuld (for eksempel ufølsom mellem store og små bogstaver).


Regulære udtryksmodifikatorer

Modifiers kan bruges til at udføre mere globale søgninger, der skelner mellem store og små bogstaver:

Modifier:

i

Beskrivelse: Udfør matchning, der skelner mellem store og små bogstaver

Prøv det →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Regular Expressions</h2>

<p>Do a case-insensitive search for "w3schools" in a string:</p>

<p id="demo"></p>

<script>
let text = "Visit W3Schools";
let result = text.match(/w3schools/i);
document.getElementById("demo").innerHTML = result;
</script>

</body>
</html>

Modifier:

g

Beskrivelse: Udfør en global kamp (find alle kampe i stedet for at stoppe efter den første kamp)

Prøv det →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Regular Expressions</h2>

<p>Do a global search for "is" in a string:</p>

<p id="demo"></p>

<script>
let text = "Is this all there is?";
let result = text.match(/is/g);
document.getElementById("demo").innerHTML = result; 
</script>

</body>
</html>

Modifier:

m

Beskrivelse: Udfør multiline-matchning

Prøv det →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Regular Expressions</h2>

<p>Do a multiline search for "is" at the beginning of each line in a string:</p>

<p id="demo"></p>

<script>
let text = "\nIs th\nis it?";
let result = text.match(/^is/m);
document.getElementById("demo").innerHTML = "Result is: " + result;
</script>

</body>
</html>

Regulære udtryksmønstre

parenteser bruges til at finde en række tegn:

Modifier:

[abc]

Beskrivelse: Find et af tegnene mellem parenteserne

Prøv det →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Regular Expressions</h2>

<p>Do a global search for the character "h" in a string:</p>

<p id="demo"></p>

<script>
let text = "Is this all there is?";
let result = text.match(/[h]/g);
document.getElementById("demo").innerHTML = result;
</script>

</body>
</html>

Modifier:

[0-9]

Beskrivelse: Find et hvilket som helst af cifrene mellem parenteserne

Prøv det →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Regular Expressions</h2>

<p>Do a global search for the numbers 1 to 4 in a string:</p>

<p id="demo"></p>

<script>
let text = "123456789";
let result = text.match(/[1-4]/g);
document.getElementById("demo").innerHTML = result;
</script>

</body>
</html>

Modifier:

(x|y)

Beskrivelse: Find et af alternativerne adskilt med |

Prøv det →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Regular Expressions</h2>

<p>Do a global search for any of the specified alternatives (red|green):</p>

<p id="demo"></p>

<script>
let text = "re, green, red, green, gren, gr, blue, yellow";
let result = text.match(/(red|green)/g);
document.getElementById("demo").innerHTML = result;
</script>

</body>
</html>

Metategn er tegn med en særlig betydning:

Modifier:

\d

Beskrivelse: Find et ciffer

Prøv det →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Regular Expressions</h2>

<p>Do a global search for digits in a string:</p>

<p id="demo"></p>

<script>
let text = "Give 100%!"; 
let result = text.match(/\d/g);
document.getElementById("demo").innerHTML = result;
</script>

</body>
</html>

Modifier:

\s

Beskrivelse: Find et mellemrumstegn

Prøv det →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Regular Expressions</h2>

<p>Do a global search for whitespace characters in a string:</p>

<p id="demo"></p>

<script>
let text = "Is this all there is?";
let result = text.match(/\s/g);
document.getElementById("demo").innerHTML = result;
</script>

</body>
</html>

Modifier:

\b

Beskrivelse: Find et match i begyndelsen af et ord som dette: \bWORD eller i slutningen af et ord sådan her: WORD\b

Prøv det →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Regular Expressions</h2>

<p>Search for the characters "LO" in the <b>beginning</b> of a word in the phrase:</p>
<p>"HELLO, LOOK AT YOU!"</p>

<p>Found in position: <span id="demo"></span></p>

<script>
let text = "HELLO, LOOK AT YOU!"; 
let result = text.search(/\bLO/);
document.getElementById("demo").innerHTML = result;
</script>

</body>
</html>

Prøv det →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Regular Expressions</h2>

<p>Search for the characters "LO" in the <b>end</b> of a word in the phrase:</p>
<p>"HELLO, LOOK AT YOU!"</p>

<p>Found in position: <span id="demo"></span></p>

<script>
let text = "HELLO, LOOK AT YOU!"; 
let result = text.search(/LO\b/);
document.getElementById("demo").innerHTML = result;
</script>

</body>
</html>

Modifier:

\uxxxx

Beskrivelse: Find Unicode-tegnet angivet af det hexadecimale tal xxxx

Prøv det →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Regular Expressions</h2>

<p>Do a global search for the hexadecimal number 0057 (W) in a string:</p>

<p id="demo"></p>

<script>
let text = "Visit W3Schools. Hello World!"; 
let result = text.match(/\u0057/g);
document.getElementById("demo").innerHTML = result;
</script>

</body>
</html>

Quantifiers definerer mængder:

Modifier:

n+

Beskrivelse: Matcher enhver streng, der indeholder mindst ét n

Prøv det →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Regular Expressions</h2>

<p>Do a global search for at least one "o" in a string:</p>

<p id="demo"></p>

<script>
let text = "Hellooo World! Hello W3Schools!"; 
let result = text.match(/o+/g);
document.getElementById("demo").innerHTML = result;
</script>

</body>
</html>

Modifier:

n*

Beskrivelse: Matcher enhver streng, der indeholder nul eller flere forekomster af n

Prøv det →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Regular Expressions</h2>

<p>Do a global search for an "l", followed by zero or more "o" characters:</p>

<p id="demo"></p>

<script>
let text = "Hellooo World! Hello W3Schools!"; 
let result = text.match(/lo*/g);
document.getElementById("demo").innerHTML = result;
</script>

</body>
</html>

Modifier:

n?

Beskrivelse: Matcher enhver streng, der indeholder nul eller én forekomst af n

Prøv det →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Regular Expressions</h2>

<p>Do a global search for a "1", followed by zero or one "0" characters:</p>

<p id="demo"></p>

<script>
let text = "1, 100 or 1000?";
let result = text.match(/10?/g);
document.getElementById("demo").innerHTML = result;
</script>

</body>
</html>

Brug af RegExp-objektet

I JavaScript er RegExp-objektet et regulært udtryksobjekt med foruddefinerede egenskaber og metoder.


Brug af test()

Metoden test() er en RegExp-udtryksmetode.

Den søger efter et mønster i en streng og returnerer sand eller falsk, afhængigt af resultatet.

Følgende eksempel søger i en streng efter tegnet "e":

Eksempel

const pattern = /e/;
pattern.test("The best things in life are free!");

Da der er et "e" i strengen, vil outputtet af koden ovenfor være:

true

Prøv det selv →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Regular Expressions</h2>

<p>Search for an "e" in the next paragraph:</p>

<p id="p01">The best things in life are free!</p>

<p id="demo"></p>

<script>
let text = document.getElementById("p01").innerHTML;
const pattern = /e/;
document.getElementById("demo").innerHTML = pattern.test(text);
</script>

</body>
</html>

Du behøver ikke at sætte det regulære udtryk i en variabel først. De to linjer ovenfor kan forkortes til én:

/e/.test("The best things in life are free!");

Brug af exec()

Metoden exec() er en RegExp-udtryksmetode.

Den søger i en streng efter et specificeret mønster og returnerer den fundne tekst som et objekt.

Hvis der ikke findes noget match, returnerer det et tomt (null) objekt.

Følgende eksempel søger i en streng efter tegnet "e":

Eksempel

/e/.exec("The best things in life are free!");

Prøv det selv →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Regular Expressions</h2>

<p id="demo"></p>

<script>
const obj = /e/.exec("The best things in life are free!");
document.getElementById("demo").innerHTML =
"Found " + obj[0] + " in position " + obj.index + " in the text: " + obj.input;
</script>

</body>
</html>

Fuldfør RegExp-reference

For en komplet reference, gå til vores Complete JavaScript RegExp-reference.

Referencen indeholder beskrivelser og eksempler på alle RegExp egenskaber og metoder.