Escape HTML and remove dangerous characters
function escapeHTML(str) {
const div = document.createElement('div');
div.textContent = str;
return div.innerHTML;
}
const safe = escapeHTML('<script>alert("xss")</script>');
console.log(safe); // "<script>alert("xss")</script>"// Escape HTML entities
function escapeHTML(str) {
const map = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": '''
};
return str.replace(/[&<>"']/g, m => map[m]);
}
console.log(escapeHTML('<div>Hello</div>'));
// Remove all HTML tags
function stripHTML(str) {
return str.replace(/<[^>]*>/g, '');
}
console.log(stripHTML('<p>Text <b>bold</b></p>'));
// Sanitize filename
function sanitizeFilename(name) {
return name
.replace(/[^a-z0-9.-]/gi, '_')
.replace(/_{2,}/g, '_')
.toLowerCase();
}
console.log(sanitizeFilename('My File Name!.txt'));
// Remove SQL injection chars
function sanitizeSQL(str) {
return str.replace(/['";\]/g, '');
}function sanitizeHTML(str, allowedTags = ['b', 'i', 'em']) {
return str.replace(/<(\/?)([^>]+)>/g, (match, slash, tag) => {
const tagName = tag.split(' ')[0].toLowerCase();
return allowedTags.includes(tagName) ? match : '';
});
}const isValidEmail = str => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(str);
const isValidURL = str => {
try {
new URL(str);
return true;
} catch {
return false;
}
};Never trust user input without sanitization
// DON'T DO THIS
element.innerHTML = userInput; // XSS vulnerability!✓ Works in all modern browsers (ES5+)