Creëer een interactieve JavaScript-functie voor gebruikersinvoer
description
Met deze prompt kan ik aangepaste interactieve functies maken die direct inspelen op gebruikersinvoer, waardoor mijn webapplicaties dynamischer en gebruiksvriendelijker worden. Het biedt ook inzicht in het implementeren van robuuste foutafhandeling, wat de kwaliteit van mijn code verbetert.
prompt
Help me een interactieve JavaScript-functie te schrijven die gebruikersinvoer verwerkt en een specifieke taak uitvoert, zoals <besc ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een voorbeeld van een interactieve JavaScript-functie die gebruikersinvoer verwerkt om te controleren of een ingevoerde tekst een geldig e-mailadres is. De functie bevat foutafhandeling en is robuust:
```javascript
// Functie om te controleren of de tekst een geldig e-mailadres is
function isValidEmail(tekst) {
try {
if (typeof tekst !== 'string') {
throw new TypeError('De invoer moet een string zijn.');
}
// Trim de invoer om onnodige spaties te verwijderen
const email = tekst.trim();
// Basis e-mail regex pattern
const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
// Test de invoer tegen het pattern
const isValid = emailPattern.test(email);
return isValid;
} catch (error) {
console.error('Fout bij het controleren van e-mail:', error);
return false;
}
}
// Voorbeeld gebruik met gebruikersinput
const gebruikerInvoer = prompt("Voer een e-mailadres in:");
const resultaat = isValidEmail(gebruikerInvoer);
if (resultaat) {
alert("Het ingevoerde e-mailadres is geldig.");
} else {
alert("Het ingevoerde e-mailadres is ongeldig.");
}
```
**Wat doet deze code?**
- De functie `isValidEmail` controleert of de invoer een string is en behandelt eventuele fouten.
- Het verwijdert onnodige spaties uit de invoer.
- Het gebruikt een eenvoudige regex om te bepalen of de tekst lijkt op een geldig e-mailadres.
- Daarna wordt de gebruiker gevraagd een e-mailadres in te voeren via `prompt`.
- Op basis van het resultaat krijgt de gebruiker een bericht te zien of het e-mailadres geldig is.
Wil je het nog interactiever maken of een andere aanpak?
provider: deepseek
model: deepseek-chat
Hier is een robuuste JavaScript-functie voor e-mailvalidatie:
```javascript
function valideerEmail(tekst) {
// Foutafhandeling: controleer of de parameter een string is
if (typeof tekst !== 'string') {
throw new Error('Ongeldige invoer: er moet een tekststring worden opgegeven');
}
// Trim whitespace en controleer op lege invoer
const getrimdeTekst = tekst.trim();
if (getrimdeTekst === '') {
return {
geldig: false,
foutmelding: 'E-mailadres mag niet leeg zijn'
};
}
// Basiscontrole op @ symbool
if (!getrimdeTekst.includes('@')) {
return {
geldig: false,
foutmelding: 'E-mailadres moet een @ bevatten'
};
}
// Splits in lokaal deel en domein
const delen = getrimdeTekst.split('@');
const lokaalDeel = delen[0];
const domeinDeel = delen[1];
// Controleer of er precies één @ is
if (delen.length !== 2) {
return {
geldig: false,
foutmelding: 'E-mailadres mag slechts één @ bevatten'
};
}
// Controleer lokaal deel (voor @)
if (lokaalDeel.length === 0) {
return {
geldig: false,
foutmelding: 'Lokaal deel (voor @) mag niet leeg zijn'
};
}
// Controleer domein deel (na @)
if (domeinDeel.length === 0) {
return {
geldig: false,
foutmelding: 'Domein deel (na @) mag niet leeg zijn'
};
}
// Controleer of domein een punt bevat
if (!domeinDeel.includes('.')) {
return {
geldig: false,
foutmelding: 'Domein moet een punt (.) bevatten'
};
}
// Controleer of TLD (top level domain) minstens 2 tekens heeft
const domeinDelen = domeinDeel.split('.');
const tld = domeinDelen[domeinDelen.length - 1];
if (tld.length < 2) {
return {
geldig: false,
foutmelding: 'Top level domain moet minstens 2 tekens bevatten'
};
}
// Regex voor uitgebreidere validatie
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!emailRegex.test(getrimdeTekst)) {
return {
geldig: false,
foutmelding: 'Ongeldig e-mailadres formaat'
};
}
// Als alle checks slagen
return {
geldig: true,
email: getrimdeTekst,
foutmelding: null
};
}
// Voorbeeldgebruik:
try {
const resultaat = valideerEmail('voorbeeld@domein.nl');
console.log(resultaat);
const ongeldigResultaat = valideerEmail('ongeldig-email');
console.log(ongeldigResultaat);
} catch (error) {
console.error('Er is een fout opgetreden:', error.message);
}
```
**Kenmerken van deze functie:**
1. **Type checking**: Controleert of de invoer een string is
2. **Trimmen**: Verwijdert ongewenste spaties
3. **Meerdere validatiestappen**: Controleert op @, domeinstructuur, TLD-lengte
4. **Gedetailleerde foutmeldingen**: Specifieke feedback over wat er mis is
5. **Regex validatie**: Extra controle met reguliere expressie
6. **Exception handling**: Gooit errors voor ongeldige parameter types
7. **Object return**: Retourneert een object met validatiestatus en details
**Gebruik:**
```javascript
const testEmail = "gebruiker@voorbeeld.nl";
const validatie = valideerEmail(testEmail);
if (validatie.geldig) {
console.log(`✅ ${validatie.email} is geldig`);
} else {
console.log(`❌ ${validatie.foutmelding}`);
}
```