Med reservation för att jag inte vet hur regexp hanteras i Javascript, jag tycker det ser helt fel ut att förvänta sig att en regexp-sträng skulle kunna ha några metoder i sig själv. Jag hade väntat mig att testen skulle kunna se ut ungefär enligt följande:
if (![b]RegExp[/b].test("/^.+@.+\..+$/", adress)) {
alert("Adressen stämmer inte.");
return;
}
Det här uttrycket: "/^.+@.+\..+$/" är ju bara en serie tecken. Hur skulle det i sig själv kunna ha några metoder för att testa? Snarare används det nog som ett argument till någon metod för reguljära uttryck.
Skrev du av precis vad jag hade skrivit? Notera att jag betonade att jag inte visste riktigt hur man gör just i javascript. Jag bara såg att det du skrev, knappast kunde vara riktigt. Nåja, jag kollade lite och har kommit fram till följande:
var reg = new RegExp("/^.+@.+\..+$/"); // Ett regexp har skapats
if ( !reg.test(adress) ) { // Nu används en metod i regexpet
alert("Adressen stämmer inte.");
return;
}
Nu har jag provat. Först strulade det, men efter att ha ändrat lite på det reguljära uttrycket, fick jag det att ge rätt besked:
<html>
<head>
<title>Untitled</title>
<SCRIPT LANGUAGE="JavaScript">
function kollaAdress(adress) {
// Notera att regexp-strängen är något modifierad jämfört med hur du skrev
// I början och slutet slängdes "/" bort,
var reg = new RegExp("^.+@.+\..+$"); // Ett regexp har skapats
if ( !reg.test(adress) ) { // Nu används en metod i regexpet
alert("Adressen stämmer inte.");
return;
}
alert("Adressen är godkänd.");
}
</SCRIPT>
</head>
<body>
<form>
<input type="text" onChange="kollaAdress(this.value);">
</form>
</body>
</html>
Precis den texten som jag har i mitt inlägg, lade jag i en fil med namnet "mail.asp". Den filen har jag i den hemkatalog som gäller för min IIS-installation. Då skriver jag bara http://localhost/mail.asp . Då funkar det.
266 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91