JavaScript - A ver quien me resuelve esto

 
Vista:

A ver quien me resuelve esto

Publicado por Alejandro (1 intervención) el 18/11/2005 13:28:09
Mi duda es un poco compleja de explicar, reulta que estoy de becario en una empresa y me han pedido que en un campo de texto aparezca siempre el siguiente patron para fechas "__/__/____" y aunque escriba números tb tiene que aparecer el patrón es decir si pongo dia 12 tiene que aparecer "12/__/____", pero lo mas dificil es que aunque le de a borrar el patrón se debe mantener, es decir si tengo "12/03/____" y borro el 0 el 2 y el 3 (estando por ejemplo el cursor al final de la cadena)se tendría que quedar tal que así : "1_/__/____" , creo que el truco está en saber la posición del cursor en el campo de texto en todo momento , para saber así qué parte de la máscara tengo que generar, pero no sé si hay alguna función de javascript que haga esto
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:A ver quien me resuelve esto

Publicado por Rand_34 (3 intervenciones) el 23/11/2005 14:07:42
Prueba con esto:

charAt(indice)
Devuelve el carácter que hay en la posición indicada como índice. Las posiciones de un string empiezan en 0.

indexOf(carácter,desde)
Devuelve la posición de la primera vez que aparece el carácter indicado por parámetro en un string. Si no encuentra el carácter en el string devuelve -1. El segundo parámetro es opcional y sirve para indicar a partir de que posición se desea que empiece la búsqueda.

lastIndexOf(carácter,desde)
Busca la posición de un carácter exáctamente igual a como lo hace la función indexOf pero desde el final en lugar del principio. El segundo parámetro indica el número de caracteres desde donde se busca, igual que en indexOf.

replace(substring_a_buscar,nuevoStr)
Implementado en Javascript 1.2, sirve para reemplazar porciones del texto de un string por otro texto, por ejemplo, podríamos uilizarlo para reemplazar todas las apariciones del substring "xxx" por "yyy". El método no reemplaza en el string, sino que devuelve un resultante de hacer ese reemplazo. Acepta expresiones regulares como substring a buscar.

split(separador)
Este método sólo es compatible con javascript 1.1 en adelante. Sirve para crear un vector a partir de un String en el que cada elemento es la parte del String que está separada por el separador indicado por parámetro.

substring(inicio,fin)
Devuelve el substring que empieza en el carácter de inicio y termina en el carácter de fin. Si intercambiamos los parámetros de inicio y fin también funciona. Simplemente nos da el substring que hay entre el carácter menor y el mayor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:A ver quien me resuelve esto

Publicado por joshiel (2 intervenciones) el 29/01/2006 22:34:34
var patron = new Array(2,2,4)
var patron2 = new Array(1,3,3,3,3,3)

function mascara(d,sep,pat,nums){
if(d.valant != d.value){
val = d.value
largo = val.length
val = val.split(sep)
val2 = ''
for(r=0;r<val.length;r++){
val2 += val[r]
}
if(nums){
for(z=0;z<val2.length;z++){
if(isNaN(val2.charAt(z))){
letra = new RegExp(val2.charAt(z),"g")
val2 = val2.replace(letra,"")
}
}
}
val = ''
val3 = new Array()
for(s=0; s<pat.length; s++){
val3[s] = val2.substring(0,pat[s])
val2 = val2.substr(pat[s])
}
for(q=0;q < val3.length; q++){
if(q ==0){
val = val3[q]
}
else{
if(val3[q] != ""){
val += sep + val3[q]
}
}
}
d.value = val
d.valant = val
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:A ver quien me resuelve esto

Publicado por joshiel (2 intervenciones) el 29/01/2006 22:35:53
var patron = new Array(2,2,4)
var patron2 = new Array(1,3,3,3,3,3)

function mascara(d,sep,pat,nums){
if(d.valant != d.value){
val = d.value
largo = val.length
val = val.split(sep)
val2 = ''
for(r=0;r<val.length;r++){
val2 += val[r]
}
if(nums){
for(z=0;z<val2.length;z++){
if(isNaN(val2.charAt(z))){
letra = new RegExp(val2.charAt(z),"g")
val2 = val2.replace(letra,"")
}
}
}
val = ''
val3 = new Array()
for(s=0; s<pat.length; s++){
val3[s] = val2.substring(0,pat[s])
val2 = val2.substr(pat[s])
}
for(q=0;q < val3.length; q++){
if(q ==0){
val = val3[q]
}
else{
if(val3[q] != ""){
val += sep + val3[q]
}
}
}
d.value = val
d.valant = val
}
}

en el input haces la lamada asi: <INPUT SIZE=10 TYPE="text" NAME="fech" TABINDEX=3 MAXLENGTH=10 onkeyup="mascara(this,'/',patron,true)" >
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar