Hola!
Hoy les mostrare una gran función de JavaScript que permite manipular que tipo de caracteres permitiré yo capturar en un campo de texto para mayor control de un formulario.
Pero primero les explicare que es una Expresión Regular.
Expresiones Regulares:
Define un patrón de búsqueda para cadenas de caracteres.
Se puede utilizar para comprobar si una cadena contiene o coincide con el patrón. El contenido de la cadena de caracteres puede coincidir con el patrón 0, 1 o más veces.
Algunos ejemplos de uso de expresiones regulares pueden ser:
- Para comprobar que la fecha leída cumple el patrón dd/mm/aaaa
- Para comprobar que un NIF está formado por 8 cifras, un guión y una letra
- Para comprobar que una dirección de correo electrónico es una dirección válida.
- Para comprobar que una contraseña cumple unas determinadas condiciones.
- Para comprobar que una URL es válida.
- Para comprobar cuántas veces se repite dentro de la cadena una secuencia de caracteres determinada.
El patrón se busca en el String de izquierda a derecha. Cuando se determina que un carácter cumple con el patrón este carácter ya no vuelve a intervenir en la comprobación.
Ejemplos de expresiones regulares:
Símbolos comunes en expresiones regulares:
Descripción
| |
. |
Un punto indica cualquier carácter
|
^expresión |
El símbolo ^ indica el principio del String. En este caso el String debe contener la expresión al principio.
|
expresión$ |
El símbolo $ indica el final del String. En este caso el String debe contener la expresión al final.
|
[abc] |
Los corchetes representan una definición de conjunto. En este ejemplo el String debe contener las letras a ó b ó c.
|
[abc][12] |
El String debe contener las letras a ó b ó c seguidas de 1 ó 2
|
[^abc] |
El símbolo ^ dentro de los corchetes indica negación. En este caso el String debe contener cualquier carácter excepto a ó b ó c.
|
[a-z1-9] |
Rango. Indica las letras minúsculas desde la a hasta la z (ambas incluidas) y los dígitos desde el 1 hasta el 9 (ambos incluidos)
|
A|B |
El carácter | es un OR. A ó B
|
AB
|
Concatenación. A seguida de B
|
Meta caracteres:
Expresión
|
Descripción
|
\d |
Dígito. Equivale a [0-9]
|
\D |
No dígito. Equivale a [^0-9]
|
\s |
Espacio en blanco. Equivale a [ \t\n\x0b\r\f]
|
\S |
No espacio en blanco. Equivale a [^\s]
|
\w |
Una letra mayúscula o minúscula, un dígito o el carácter _
Equivale a [a-zA-Z0-9_]
|
\W |
Equivale a [^\w]
|
\b |
Límite de una palabra.
|
En Java debemos usar una doble barra invertida \\
Por ejemplo para utilizar \w tendremos que escribir \\w. Si queremos indicar que la barra invertida en un carácter de la expresión regular tendremos que escribir \\\\.
Cuantificadores:
Expresión
|
Descripción
|
{X} |
Indica que lo que va justo antes de las llaves se repite X veces
|
{X,Y} |
Indica que lo que va justo antes de las llaves se repite mínimo X veces y máximo Y veces. También podemos poner {X,} indicando que se repite un mínimo de X veces sin límite máximo.
|
* |
Indica 0 ó más veces. Equivale a {0,}
|
+ |
Indica 1 ó más veces. Equivale a {1,}
|
Los caracteres de control ASCII (rango 00-31, además de 127) fueron diseñados para controlar los dispositivos de hardware.
Los caracteres de control (excepto tabulador horizontal, avance de línea y retorno de carro) no tienen nada que hacer dentro de un documento HTML.
ASCII caracteres imprimibles
Char | Number | Description |
---|---|---|
32 | space | |
! | 33 | exclamation mark |
" | 34 | quotation mark |
# | 35 | number sign |
$ | 36 | dollar sign |
% | 37 | percent sign |
& | 38 | ampersand |
' | 39 | apostrophe |
( | 40 | left parenthesis |
) | 41 | right parenthesis |
* | 42 | asterisk |
+ | 43 | plus sign |
, | 44 | comma |
- | 45 | hyphen |
. | 46 | period |
/ | 47 | slash |
0 | 48 | digit 0 |
1 | 49 | digit 1 |
2 | 50 | digit 2 |
3 | 51 | digit 3 |
4 | 52 | digit 4 |
5 | 53 | digit 5 |
6 | 54 | digit 6 |
7 | 55 | digit 7 |
8 | 56 | digit 8 |
9 | 57 | digit 9 |
: | 58 | colon |
; | 59 | semicolon |
< | 60 | less-than |
= | 61 | equals-to |
> | 62 | greater-than |
? | 63 | question mark |
@ | 64 | at sign |
A | 65 | uppercase A |
B | 66 | uppercase B |
C | 67 | uppercase C |
D | 68 | uppercase D |
E | 69 | uppercase E |
F | 70 | uppercase F |
G | 71 | uppercase G |
H | 72 | uppercase H |
I | 73 | uppercase I |
J | 74 | uppercase J |
K | 75 | uppercase K |
L | 76 | uppercase L |
M | 77 | uppercase M |
N | 78 | uppercase N |
O | 79 | uppercase O |
P | 80 | uppercase P |
Q | 81 | uppercase Q |
R | 82 | uppercase R |
S | 83 | uppercase S |
T | 84 | uppercase T |
U | 85 | uppercase U |
V | 86 | uppercase V |
W | 87 | uppercase W |
X | 88 | uppercase X |
Y | 89 | uppercase Y |
Z | 90 | uppercase Z |
[ | 91 | left square bracket |
\ | 92 | backslash |
] | 93 | right square bracket |
^ | 94 | caret |
_ | 95 | underscore |
` | 96 | grave accent |
a | 97 | lowercase a |
b | 98 | lowercase b |
c | 99 | lowercase c |
d | 100 | lowercase d |
e | 101 | lowercase e |
f | 102 | lowercase f |
g | 103 | lowercase g |
h | 104 | lowercase h |
i | 105 | lowercase i |
j | 106 | lowercase j |
k | 107 | lowercase k |
l | 108 | lowercase l |
m | 109 | lowercase m |
n | 110 | lowercase n |
o | 111 | lowercase o |
p | 112 | lowercase p |
q | 113 | lowercase q |
r | 114 | lowercase r |
s | 115 | lowercase s |
t | 116 | lowercase t |
u | 117 | lowercase u |
v | 118 | lowercase v |
w | 119 | lowercase w |
x | 120 | lowercase x |
y | 121 | lowercase y |
z | 122 | lowercase z |
{ | 123 | left curly brace |
| | 124 | vertical bar |
} | 125 | right curly brace |
~ | 126 | tilde |
Otros:
Char | Number | Description |
---|---|---|
NUL | 00 | null character |
SOH | 01 | start of header |
STX | 02 | start of text |
ETX | 03 | end of text |
EOT | 04 | end of transmission |
ENQ | 05 | enquiry |
ACK | 06 | acknowledge |
BEL | 07 | bell (ring) |
BS | 08 | backspace |
HT | 09 | horizontal tab |
LF | 10 | line feed |
VT | 11 | vertical tab |
FF | 12 | form feed |
CR | 13 | carriage return |
SO | 14 | shift out |
SI | 15 | shift in |
DLE | 16 | data link escape |
DC1 | 17 | device control 1 |
DC2 | 18 | device control 2 |
DC3 | 19 | device control 3 |
DC4 | 20 | device control 4 |
NAK | 21 | negative acknowledge |
SYN | 22 | synchronize |
ETB | 23 | end transmission block |
CAN | 24 | cancel |
EM | 25 | end of medium |
SUB | 26 | substitute |
ESC | 27 | escape |
FS | 28 | file separator |
GS | 29 | group separator |
RS | 30 | record separator |
US | 31 | unit separator |
DEL | 127 | delete (rubout) |
URL para buscar un el código de un caracter especifico:
Ejemplo de uso en una función:
//FUNCION EN JAVASCRIPT (SOLO CAPTURAR NUMEROS)
function validarn(e) {//e es el objeto que recibe
//se crea una variable de tipo var, llamada keynum
var keynum = window.event ? window.event.keyCode : e.which;
//keynum recibe los eventos que captura el teclado,
//funciona si es: window.event haga window.event.keyCode sino haga e.which
if ((keynum == 8) || (keynum == 44) || (keynum == 46))
//codigos 8 = borrar, 44 es igual a coma (,), 46 es igual a punto (.)
return true;
//retorna verdadero si se ingresa alguno de estos tres caracteres y finaliza la función
//si la condición no se cumple, con la expresión regular \d, permite capturar solo numeros en la variable keynum por caracter ingresado
return /\d/.test(String.fromCharCode(keynum));
}
//OTRA FUNCION, QUE SOLO PERMITE UNOS CUANTOS CARACTERES
function validarc(e){
//se crea una variable de tipo var, llamada keynum
var keynum = window.event ? window.event.keyCode : e.which;
//keynum recibe los eventos que captura el teclado,
//funciona si es: window.event haga window.event.keyCode sino haga e.which
if ((keynum == 0) || (keynum == 8) || (keynum == 44) || (keynum == 46))
//codigos 0 = tecla suprimir, y de desplazamiento derecha o izquierda, 8 = borrar, 44 es igual a coma (,), 46 es igual a punto (.)
return true;
//retorna verdadero si se ingresa alguno de estos tres caracteres y finaliza la función
return false;
//obligatoriamente necesita otro return para finalizar la función
}
Fuentes:
0 comentarios :
Publicar un comentario