PDA

Ver la Versión Completa : Evitar que el usuario escriba tildes con javascript


cahosoft
13-10-2006, 15:47:50
Hola como estan,
tengo un formulario en que me pide el nombre y apellidos del apellidos....
yo se que por medio de este eventos en la caja de texto
onKeypress="if ((event.keyCode < 45 || event.keyCode > 57) && (event.keyCode!=13)) event.returnValue = false;"
pero lo hace para los numeros....lo que quiero es que el usuario no le permira digiar o colocar vocales con tilde en la caja de texto..

Gracias por todo

dec
13-10-2006, 16:13:58
Hola,

A bote pronto se me ocurre algo así, aunque, me imagino que la expresión regular que utilizo puede mejorarse, y, en general, el resto del código, quiero decir, acaso utilizando otra cosa y no el método "match". En todo caso parece funcionar e igual te apaña o te ofrece alguna idea:


<html>
<body>

<script type="text/javascript">

function ComprobarAcentos(inputtext)
{
if(!inputtext) return false;
if(inputtext.value.match('[á,é,í,ó,ú]|[Á,É,Í,Ó,Ú]'))
{
alert('No se permiten acentos en la casilla');
inputtext.value = '';
inputtext.focus();
return true;
}
return false;
}

</script>

<div>
<input type="text" onkeyup="javascript:ComprobarCasilla(this);" />
</div>

</body>
</html>

kayetano
14-10-2006, 00:02:44
Hola

Una simple curiosidad ¿Que problema tienes con las tildes? mi nombre lleva tilde y me gusta ponerle siempre la tilde.

Es muy posible que haya otra solución mas digna para las tildes.

mamcx
14-10-2006, 00:26:12
Estoy de acuerdo. No le veo razon real para ocultar tildes... sera que tienes un problema de encoding y te llegan "garabatos"?

Por otro lado con respecto a lo de expresion regular. Lo correcto es verificar los casos validos, no escribir los casos invalidos.

i.e. es mas productivo saber como se detecta si un billete es real a las 10001 maneras de estafa que se pueden hacer.

En tal caso, un expresion regular seria asi:

[a-zA-Z0-9\s]+


mas o menos...

Pero sigo sin entender porque sacar las tildes...

roman
14-10-2006, 00:34:34
Este, bueno, fundamentalmente me parece razonable lo que dices Mario, en cuanto al uso de la expresión regular, pero... ¿Hay nombres de personas con números? :eek: :D

// Saludos

D-MO
14-10-2006, 00:55:30
... ¿Hay nombres de personas con números? :eek: :DPues segúramente en Colombia los ha de haber, ¿verdad Mario?

Saludos.

mamcx
14-10-2006, 03:11:48
Essteeeeee...

Tengo confirmado que un tipo en La Guajira se llama One Dollar. Hay otro US Army, y otros nombres por el estilo... (De La Guajira hay mucho de esto, es muy gracioso ;) )

(Aunque la verdad, se me borro de la mente la parte "nombre" y "apellido" y imagine estaba hablando de "usuario")

dec
14-10-2006, 06:41:48
Hola,

CahoSoft, no les hagas ni caso. Si no quieres que se puedan incluir acentos que no se incluyan y punto pelota. Hay razones para hacer algo así y tú puedes tenerlas. Por otro lado, Mario, esta expresión regular:


[a-zA-Z0-9\s]+


¿Vale para JavaScript? Pregunto. Porque no lo sé. Bueno. Lo dicho, lo que tienen es envidia de mi código que es el mejor del mundo. Tú haz lo que tengas que hacer CahoSoft, que si no lo haces tú no lo hará nadie.

:D :D :D :D :D

kayetano
14-10-2006, 14:43:57
Hola

CahoSoft, no les hagas ni caso. Si no quieres que se puedan incluir acentos que no se incluyan y punto pelota. Hay razones para hacer algo así y tú puedes tenerlas.
Por lo general cuando alguien pide cosas "raras" como esta (yo no soy partidario de escribir mal mi nombre) es porque tiene un problema con las tildes e intenta arreglarlo no usándolas, por lo tanto prefiero que exponga su problema real con las tildes y así darle una solución razonalble.

Mira que si alguien tubiera un problema con la "A" y optara por no usarla ;).

¿Vale para JavaScript?
Creo que con RegExp se pueden usar expresiones regulares en javascript. Las expresiones regulares también se pueden usar en los métodos String.match, String.replace, String.search y String.split. Ademas una expresión regular tan simple como esta no creo que tenga ningún problema

dec
14-10-2006, 15:06:30
Hola,


Por lo general cuando alguien pide cosas "raras" como esta (yo no soy partidario de escribir mal mi nombre) es porque tiene un problema con las tildes e intenta arreglarlo no usándolas, por lo tanto prefiero que exponga su problema real con las tildes y así darle una solución razonalble.

Mira que si alguien tubiera un problema con la "A" y optara por no usarla .


Bueno. Yo pretendía ser un poco sarcástico. Está claro que puede ser como dices, empero, valga la solución que dí si, por cualquier razón (ojo, razón) no se quiere permitir al usuario ingresar letras acentuadas.


Creo que con RegExp se pueden usar expresiones regulares en javascript. Las expresiones regulares también se pueden usar en los métodos String.match, String.replace, String.search y String.split. Ademas una expresión regular tan simple como esta no creo que tenga ningún problema


Bueno. Es que yo en esto me pierdo un poco. Sé únicamente que las Expresiones Regulares son todo un mundo, y que algunas son de tipo "Perl", otras de otros tipos... que en no todos los lenguajes se encuentran "disponibles de serie", etc.

En lo referente a JavaScript y según se puede leer aquí: JavaScript RegExp Object (http://www.regular-expressions.info/javascript.html) las Expresiones Regulares en JavaScript se basan en la sintaxis de las de Perl, pero, parecen no contar con toda la potencia de éstas:


In JavaScript, a regular expression is written in the form of /pattern/modifiers where "pattern" is the regular expression itself, and "modifiers" are a series of characters indicating various options. The "modifiers" part is optional. This syntax is borrowed from Perl. JavaScript supports the following modifiers, a subset of those supported by Perl:

* /g enables "global" matching. When using the replace() method, specify this modifier to replace all matches, rather than only the first one.
* /i makes the regex match case insensitive.
* /m enables "multi-line mode". In this mode, the caret and dollar match before and after newlines in the subject string.


Por eso decía si se estaba seguro de que la Expresión Regular estaba probada, porque era posible que no funcionase, sobre todo por el "modificador" "/s" que no parece estar disponible para las Expresiones Regulares en JavaScript.

Zeta
19-10-2006, 21:27:25
Este, bueno, fundamentalmente me parece razonable lo que dices Mario, en cuanto al uso de la expresión regular, pero... ¿Hay nombres de personas con números? :eek: :D

// Saludos

Benedicto XVI? :D:D:D, son números, romanos, pero números al fín :D:D:D
EN algunos países, ej EU, si el nombre del padre y del hijo son iguales, el del hijo se pone con números romanos.

Pero números 1,2,3,4 habrá que ver...


Saludos