$(function () {
var contactForm = document.getElementById('contactForm');
contactForm.onsubmit = function (e) {
e.preventDefault();
console.log('¿El correo es válido?', isValidEmail());
}
var isValidEmail = function () {
var email = document.getElementById('email');
/*Cualquier tipo de letra que se repita una o más veces (^w+)
Puede incluir cualquiera de estos símbolos y que pueden o no estar presentes ([\.\+\-]?)
Y todo este bloque se puede repetir una o más veces(*)
Ponemos el @ para evaluar que después de ese bloque exista uno
*/
return /^\w+([\.\+\-]?\w+)*@([\.-]?\w+)*(\.\w{2,4})+$/.test(email.value)
}
});
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="
crossorigin="anonymous"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp"
crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
crossorigin="anonymous"></script>
<script src="app.js"></script>
<link rel="stylesheet" type="text/css" href="base.css">
</head>
<body>
<form id="contactForm">
<div class="form-group">
<label for="email">Email:</label>
<input type="email" class="form-control" id="email">
</div>
<div class="form-group">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd">
</div>
<button type="submit" class="btn btn-default">Validar</button>
</form>
</body>
</html>
CSS
form {
width: 300px;
margin: 50px auto;
background-color: #eee;
padding: 20px;
border-radius: 10px;
}
$(function () {
var contactForm = document.getElementById('contactForm');
contactForm.onsubmit = function (e) {
e.preventDefault();
console.log('¿El Twitter es válido?', isValidTwitter());
}
var isValidTwitter = function () {
var twitter = document.getElementById('twitter');
return /^@?(\w+)$/.test(twitter.value)
}
});
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="
crossorigin="anonymous"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp"
crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
crossorigin="anonymous"></script>
<script src="app.js"></script>
<link rel="stylesheet" type="text/css" href="base.css">
</head>
<body>
<form id="contactForm">
<div class="form-group">
<label for="twitter">Twitter:</label>
<input type="text" class="form-control" id="twitter">
</div>
<div class="form-group">
<label for="email">Email:</label>
<input type="email" class="form-control" id="email">
</div>
<div class="form-group">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd">
</div>
<button type="submit" class="btn btn-default">Validar</button>
</form>
</body>
</html>
CSS
form {
width: 300px;
margin: 50px auto;
background-color: #eee;
padding: 20px;
border-radius: 10px;
}
$(function () {
var contactForm = document.getElementById('contactForm');
contactForm.onsubmit = function (e) {
e.preventDefault();
console.log('¿La URL es válida?', isValidUrl());
}
/**
* URL/Dirección web válida
*/
var isValidUrl = function () {
var url = document.getElementById('url');
return /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \?=.-]*)*\/?$/.test(url.value)
}
/**
* Contraseña segura
* Contraseñas con al menos una letra mayúscula.
* Contraseñas con al menos una letra minúscula.
* Contraseñas con al menos un número o caracter especial.
* Contraseñas con mínimo 8 caracteres.
**/
var isValidPass = function () {
var pass = document.getElementById('pass');
return /(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$/.test(pass.value)
}
/**
* Teléfonos en el mundo
* https://en.wikipedia.org/wiki/List_of_country_calling_codes
*/
var isValidPhone = function () {
var phone = document.getElementById('phone');
return /(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$/.test(phone.value)
}
/**
* Tarjetas de credito
*/
var isValidCreditCard = function () {
var phone = document.getElementById('phone');
return /^((67\d{2})|(4\d{3})|(5[1-5]\d{2})|(6011))(-?\s?\d{4}){3}|(3[4,7])\ d{2}-?\s?\d{6}-?\s?\d{5}$/.test(phone.value)
}
/**
* Código postal
*/
var isValidPostalCode = function () {
var phone = document.getElementById('phone');
return /^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$/.test(phone.value)
}
/**
* Nombres de usuario
* Mínimo 6 caracteres
* Máximo 30 caracteres
*/
var isValidUserName = function () {
var phone = document.getElementById('phone');
return /^[a-z\d_]{6,30}$/i.test(phone.value)
}
});