Kezdőoldal » Számítástechnika » Programozás » Miért nem működik ez a regexp...

Miért nem működik ez a regexp match javascriptben?

Figyelt kérdés

Az input mező:

<input type="email" name="" id="email1" pattern="/^[0-9a-z\.-]+@([0-9a-z-]+\.)+[a-z]{2,4}$/i">

Az ellenőrzés a függvényben:

} else if (!((input_email_dom_1.value).match(email_pattern)) ) {


Mindent megtalál jól, csak a megfeleltetés nem megy, pl a@e.h esetén.



2023. márc. 21. 19:03
 1/6 A kérdező kommentje:
2023. márc. 21. 19:21
 2/6 anonim ***** válasza:
54%
[a-z]{2,4} ez nem is fog 1 karakteres "domain névre" működni.
2023. márc. 21. 19:54
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:
Igen, az is hiba volt, de egyébként több karakternél is hiba volt.
2023. márc. 22. 01:10
 4/6 A kérdező kommentje:

A megoldás:


vagy


const email_pattern = /^[0-9a-z\.-]+@([0-9a-z-]+\.)+[a-z]{2,4}$/i;

} else if (!(input_email_dom_1.value).match(email_pattern) ) {


vagy


} else if (!/^[0-9a-z\.-]+@([0-9a-z-]+\.)+[a-z]{2,4}$/.test(input_email_dom_1.value) ) {


vagy


<form action="/action_page.php">

<label for="email">Email:</label>

<input type="email" id="email" name="email"

pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$">

<input type="submit">

</form>


ez esetben ez mind jó:


//const email_pattern = /^[0-9a-z\.-]+@([0-9a-z-]+\.)+[a-z]{2,4}$/i;

//const email_pattern = input_email_dom_1.getAttribute("pattern");

//const email_pattern = new RegExp(input_email_dom_1.getAttribute("pattern"));

//const email_pattern = new RegExp(input_email_dom_1.getAttribute("pattern"), 'g');


és akkor:

} else if (!(input_email_dom_1.value).match(email_pattern) ) {

2023. márc. 22. 01:10
 5/6 anonim ***** válasza:

A probléma az, hogy a pattern attribútum nem igényel határoló jeleket (/), mint a JavaScript RegExp objektum. Ha eltávolítja a határoló jeleket, akkor a regexp match működni fog. Például:


<input type="email" name="" id="email1" pattern="^[0-9a-z.-]+@([0-9a-z-]+.)+[a-z]{2,4}$">


Ezt a weboldalt1 használtam referenciaként a match () metódus működésének megértéséhez.

2023. márc. 24. 21:58
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:
2023. márc. 24. 21:58
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!