Hey hermanos Bakunos, solicito su ayuda con este programita en javascript
ya hace todo lo que necesito, excepto quitar los acentos al pasar a mayusculas en el combo de Nombre y Apellido..
en la funcion de remover acentos es donde estoy atorado...NO QUITA LOS ACENTOSS!!! ya le hice de mil maneras y nada...si alguien podria ver donde esta el problema y hcharme la mano se los agradeceria muchooooooooooooo...
saludos y muchas gracias de antemano.
<html>
<head>
<style type="text/css">
span.error{
color:red;
}
</style>
</head>
<body>
<form onsubmit="return validate();">
<label for="name">Nombre</label>
<input type="text" name="name" id="name" onblur="toLowerCase(this);"/><br/>
<label for="lastName">Apellido</label>
<input type="text" name="lastName" id="lastName" onblur="toLowerCase(this);"/>
<br/>
<label for="username">Usuario</label>
<input type="text" name="username" id="username" onblur="toLowerCase(this);" maxlength="10"/>
<span id="usernameError" class="error"></span>
<br/>
<label for="password">Password</label>
<input type="password" name="password" id="password" />
<span id="passwordError" class="error"></span>
<br/>
<label for="confirmPassword">Confirmar Password</label>
<input type="password" name="confirmPassword" id="confirmPassword" />
<span id="confirmPasswordError" class="error"></span>
<br/>
<label for="birthDate">Fecha de nacimiento</label>
<select name="birthDateDay" id="birthDateDay"></select> - <select name="birthDateMonth" id="birthDateMonth"></select> - <select name="birthDateYear" id="birthDateYear"></select>
<span id="birthDateError" class="error"></span>
<br/>
<label for="age">Edad</label>
<input type="text" name="age" id="age" onfocus="setAge();"/><br/>
<label for="name">Intereses</label>
<ul>
<li><input type="checkbox" name="interests">Interes 1</li>
<li><input type="checkbox" name="interests">Interes 2</li>
<li><input type="checkbox" name="interests">Interes 3</li>
<li><input type="checkbox" name="interests">Interes 4</li>
<li><input type="checkbox" name="interests">Interes 5</li>
<li><input type="checkbox" name="interests">Interes 6</li>
<li><input type="checkbox" name="interests">Interes 7</li>
<li><input type="checkbox" name="interests">Interes 8</li>
<li><input type="checkbox" name="interests">Interes 9</li>
<li><input type="checkbox" name="interests">Interes 10</li>
</ul>
<span id="interestsError" class="error"></span>
<br/>
<label for="comments">Comentarios</label>
<textarea id="comments" rows="2" cols="40"></textarea>
<span id="commentsError" class="error"></span>
<br/>
<input type="submit" name="submit" value="Enviar" id="submit">
<input type="reset" name="reset" value="Reset">
</form>
<script type="text/javascript">
function fillSelect(selectId, from, to){
var select = document.getElementById(selectId);
for(var i = from; i <= to; i++){
var option = document.createElement("option");
option.innerHTML = i;
select.appendChild(option);
}
}
fillSelect('birthDateDay', 1, 31);
fillSelect('birthDateMonth', 1, 12);
fillSelect('birthDateYear', 1900, 2011);
function validate(){
var isValid = true;
if(document.getElementById('username').value.length < 6){
document.getElementById('usernameError').innerHTML = 'El usuario debe ser mayor a 6 caracteres';
isValid = false;
}else{
cleanError('usernameError');
}
var password = document.getElementById('password').value;
if(password.length == 0 || !hasNumbers(password) || !hasOneUppercaseLetter(password) || password.length != 8){
document.getElementById('passwordError').innerHTML = 'El password debe contener por lo menos un numero, una letra mayuscula y debe ser de 8 caracteres';
isValid = false;
}else{
cleanError('passwordError');
}
if(password != document.getElementById('confirmPassword').value){
displayError('confirmPasswordError', 'Los passwords deben ser iguales');
isValid = false;
}else{
cleanError('confirmPasswordError');
}
var year = document.getElementById('birthDateYear').value;
var month = document.getElementById('birthDateMonth').value;
var day = document.getElementById('birthDateDay').value;
if(isValidDate(new Number(year), new Number(month), new Number(day))){
setAge()
cleanError('birthDateError');
}else{
displayError('birthDateError', 'La fecha es invalida');
isValid = false;
}
var elements = document.getElementsByName('interests');
var interests = 0;
for(var i = 0; i< elements.length; i++){
var el = elements;
if(el.checked){
interests++;
}
}
if(interests != 3){
displayError('interestsError', 'Debe seleccionar 3 intereses');
isValid = false;
}else{
cleanError('interestsError');
}
if(document.getElementById('comments').value.length > 140){
displayError('commentsError', 'El comentario debe ser menor de 140 caracteres');
isValid = false;
}else{
cleanError('commentsError');
}
if(!isValid){
alert('Revise los errores');
}
return isValid;
}
function displayError(span, error){
document.getElementById(span).innerHTML = error;
}
function cleanError(span){
document.getElementById(span).innerHTML = '';
}
function toLowerCase(input){
input.value = removeAccents(input.value).toUpperCase();
}
function hasNumbers(s)
{
return /\d/.test(s);
}
function hasOneUppercaseLetter(s){
return /[A-Z]/.test(s);
}
function isValidDate(y, m, d){
var o = new Date(y, --m, d);
return o.getFullYear() == y && o.getMonth() == m && o.getDate() == d;
};
function setAge(){
var year = document.getElementById('birthDateYear').value;
var month = document.getElementById('birthDateMonth').value;
var day = document.getElementById('birthDateDay').value;
document.getElementById('age').value = getAge(year, month, day);
}
function getAge(year, month, day) {
var today = new Date();
var birthDate = new Date(year, month, day, 0, 0, 0);
var age = today.getFullYear() - birthDate.getFullYear();
var m = today.getMonth() - birthDate.getMonth();
if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
age--;
}
return age;
}
function removeAccents(s){
var r = s.toLowerCase();
return r;
r = r.replace(new RegExp("\\s", 'g'),"");
r = r.replace(new RegExp("[àáâãäå]", 'g'),"a");
r = r.replace(new RegExp("æ", 'g'),"ae");
r = r.replace(new RegExp("ç", 'g'),"c");
r = r.replace(new RegExp("[èéêë]", 'g'),"e");
r = r.replace(new RegExp("[ìíîï]", 'g'),"i");
r = r.replace(new RegExp("ñ", 'g'),"n");
r = r.replace(new RegExp("[òóôõö]", 'g'),"o");
r = r.replace(new RegExp("œ", 'g'),"oe");
r = r.replace(new RegExp("[ùúûü]", 'g'),"u");
r = r.replace(new RegExp("[ýÿ]", 'g'),"y");
r = r.replace(new RegExp("\\W", 'g'),"");
return r;
};
</script>
</body>
</html>
ya hace todo lo que necesito, excepto quitar los acentos al pasar a mayusculas en el combo de Nombre y Apellido..
en la funcion de remover acentos es donde estoy atorado...NO QUITA LOS ACENTOSS!!! ya le hice de mil maneras y nada...si alguien podria ver donde esta el problema y hcharme la mano se los agradeceria muchooooooooooooo...
saludos y muchas gracias de antemano.
<html>
<head>
<style type="text/css">
span.error{
color:red;
}
</style>
</head>
<body>
<form onsubmit="return validate();">
<label for="name">Nombre</label>
<input type="text" name="name" id="name" onblur="toLowerCase(this);"/><br/>
<label for="lastName">Apellido</label>
<input type="text" name="lastName" id="lastName" onblur="toLowerCase(this);"/>
<br/>
<label for="username">Usuario</label>
<input type="text" name="username" id="username" onblur="toLowerCase(this);" maxlength="10"/>
<span id="usernameError" class="error"></span>
<br/>
<label for="password">Password</label>
<input type="password" name="password" id="password" />
<span id="passwordError" class="error"></span>
<br/>
<label for="confirmPassword">Confirmar Password</label>
<input type="password" name="confirmPassword" id="confirmPassword" />
<span id="confirmPasswordError" class="error"></span>
<br/>
<label for="birthDate">Fecha de nacimiento</label>
<select name="birthDateDay" id="birthDateDay"></select> - <select name="birthDateMonth" id="birthDateMonth"></select> - <select name="birthDateYear" id="birthDateYear"></select>
<span id="birthDateError" class="error"></span>
<br/>
<label for="age">Edad</label>
<input type="text" name="age" id="age" onfocus="setAge();"/><br/>
<label for="name">Intereses</label>
<ul>
<li><input type="checkbox" name="interests">Interes 1</li>
<li><input type="checkbox" name="interests">Interes 2</li>
<li><input type="checkbox" name="interests">Interes 3</li>
<li><input type="checkbox" name="interests">Interes 4</li>
<li><input type="checkbox" name="interests">Interes 5</li>
<li><input type="checkbox" name="interests">Interes 6</li>
<li><input type="checkbox" name="interests">Interes 7</li>
<li><input type="checkbox" name="interests">Interes 8</li>
<li><input type="checkbox" name="interests">Interes 9</li>
<li><input type="checkbox" name="interests">Interes 10</li>
</ul>
<span id="interestsError" class="error"></span>
<br/>
<label for="comments">Comentarios</label>
<textarea id="comments" rows="2" cols="40"></textarea>
<span id="commentsError" class="error"></span>
<br/>
<input type="submit" name="submit" value="Enviar" id="submit">
<input type="reset" name="reset" value="Reset">
</form>
<script type="text/javascript">
function fillSelect(selectId, from, to){
var select = document.getElementById(selectId);
for(var i = from; i <= to; i++){
var option = document.createElement("option");
option.innerHTML = i;
select.appendChild(option);
}
}
fillSelect('birthDateDay', 1, 31);
fillSelect('birthDateMonth', 1, 12);
fillSelect('birthDateYear', 1900, 2011);
function validate(){
var isValid = true;
if(document.getElementById('username').value.length < 6){
document.getElementById('usernameError').innerHTML = 'El usuario debe ser mayor a 6 caracteres';
isValid = false;
}else{
cleanError('usernameError');
}
var password = document.getElementById('password').value;
if(password.length == 0 || !hasNumbers(password) || !hasOneUppercaseLetter(password) || password.length != 8){
document.getElementById('passwordError').innerHTML = 'El password debe contener por lo menos un numero, una letra mayuscula y debe ser de 8 caracteres';
isValid = false;
}else{
cleanError('passwordError');
}
if(password != document.getElementById('confirmPassword').value){
displayError('confirmPasswordError', 'Los passwords deben ser iguales');
isValid = false;
}else{
cleanError('confirmPasswordError');
}
var year = document.getElementById('birthDateYear').value;
var month = document.getElementById('birthDateMonth').value;
var day = document.getElementById('birthDateDay').value;
if(isValidDate(new Number(year), new Number(month), new Number(day))){
setAge()
cleanError('birthDateError');
}else{
displayError('birthDateError', 'La fecha es invalida');
isValid = false;
}
var elements = document.getElementsByName('interests');
var interests = 0;
for(var i = 0; i< elements.length; i++){
var el = elements;
if(el.checked){
interests++;
}
}
if(interests != 3){
displayError('interestsError', 'Debe seleccionar 3 intereses');
isValid = false;
}else{
cleanError('interestsError');
}
if(document.getElementById('comments').value.length > 140){
displayError('commentsError', 'El comentario debe ser menor de 140 caracteres');
isValid = false;
}else{
cleanError('commentsError');
}
if(!isValid){
alert('Revise los errores');
}
return isValid;
}
function displayError(span, error){
document.getElementById(span).innerHTML = error;
}
function cleanError(span){
document.getElementById(span).innerHTML = '';
}
function toLowerCase(input){
input.value = removeAccents(input.value).toUpperCase();
}
function hasNumbers(s)
{
return /\d/.test(s);
}
function hasOneUppercaseLetter(s){
return /[A-Z]/.test(s);
}
function isValidDate(y, m, d){
var o = new Date(y, --m, d);
return o.getFullYear() == y && o.getMonth() == m && o.getDate() == d;
};
function setAge(){
var year = document.getElementById('birthDateYear').value;
var month = document.getElementById('birthDateMonth').value;
var day = document.getElementById('birthDateDay').value;
document.getElementById('age').value = getAge(year, month, day);
}
function getAge(year, month, day) {
var today = new Date();
var birthDate = new Date(year, month, day, 0, 0, 0);
var age = today.getFullYear() - birthDate.getFullYear();
var m = today.getMonth() - birthDate.getMonth();
if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
age--;
}
return age;
}
function removeAccents(s){
var r = s.toLowerCase();
return r;
r = r.replace(new RegExp("\\s", 'g'),"");
r = r.replace(new RegExp("[àáâãäå]", 'g'),"a");
r = r.replace(new RegExp("æ", 'g'),"ae");
r = r.replace(new RegExp("ç", 'g'),"c");
r = r.replace(new RegExp("[èéêë]", 'g'),"e");
r = r.replace(new RegExp("[ìíîï]", 'g'),"i");
r = r.replace(new RegExp("ñ", 'g'),"n");
r = r.replace(new RegExp("[òóôõö]", 'g'),"o");
r = r.replace(new RegExp("œ", 'g'),"oe");
r = r.replace(new RegExp("[ùúûü]", 'g'),"u");
r = r.replace(new RegExp("[ýÿ]", 'g'),"y");
r = r.replace(new RegExp("\\W", 'g'),"");
return r;
};
</script>
</body>
</html>