Las expresiones regulares en ASP son muy útiles para reemplazar carácteres extraños en cadenas de texto y quitar acentos para por ejemplo generar url’s amigables
Etiquetas:
acentos,
ansi,
asp,
cadena de texto,
carácteres extraños,
comillas,
expresiones regulares,
iso-8859-1,
javascript,
patrón expresión regular,
Pattern,
permalinks,
php,
reemplazar carácteres,
RegExp,
replace,
string,
tildes,
URL friendly,
URL's amigables,
UTF-8
No Hay Comentarios »
Publicado en Programación
Alguna vez he tenido la necesidad de eliminar los saltos de línea en un campo de formulario de tipo textarea. Más aún, he tenido la necesidad de eliminar los saltos de línea del texto seleccionado dentro de un textarea. Con la siguiente función Javascript conseguimos localizar la porción de texto seleccionado y eliminar los saltos de línea o line breaks («\n») y los retornos de carro o carrier return («\r»). Para ello utilizamos funciones propias del lenguaje Javascript (createTextRange, duplicate, replace) y expresiones regulares.
function suprSaltos(campo) {
if (campo.createTextRange) {
campo.focus(campo.caretPos);
campo.caretPos = document.selection.createRange().duplicate();
if(campo.caretPos.text.length>0) {
var sel = campo.caretPos.text;
var fin = '';
while(sel.substring(sel.length-1, sel.length)==' ') {
sel = sel.substring(0, sel.length-1);
fin += ' ';
}
campo.caretPos.text = sel.replace(new RegExp('\\n','g'),''). _
replace(new RegExp('\\r','g'),'') + fin;
} else campo.caretPos.text = '';
}
else campo.value += '';
} |
function suprSaltos(campo) {
if (campo.createTextRange) {
campo.focus(campo.caretPos);
campo.caretPos = document.selection.createRange().duplicate();
if(campo.caretPos.text.length>0) {
var sel = campo.caretPos.text;
var fin = '';
while(sel.substring(sel.length-1, sel.length)==' ') {
sel = sel.substring(0, sel.length-1);
fin += ' ';
}
campo.caretPos.text = sel.replace(new RegExp('\\n','g'),''). _
replace(new RegExp('\\r','g'),'') + fin;
} else campo.caretPos.text = '';
}
else campo.value += '';
}
Como en otras funciones, en esta función es necesario juntar la expresión en una única línea quitando los _ de final de línea porque de lo contrario no funcionará.
Etiquetas:
expresiones regulares,
javascript,
saltos línea
4 Comentarios »
Publicado en Programación
Para validar direcciones de Internet simples (URL’s) de usuarios que introducen su página web en un campo de formulario podemos utilizar la siguiente función en Javascript:
function ValidarUrl(txtCampo)
strExpReg = /^http:\/\/[a-zA-Z0-9-_:/.?&=]+$/;
if (!strExpReg.test(txtCampoActual.value)){
strMensaje = 'La página web no es válida,\ncontiene carácteres ';
strMensaje += 'no válidos o no empieza por "http://"';
alert(strMensaje);
txtCampoActual.focus();
return false;
}
return true;
end function |
function ValidarUrl(txtCampo)
strExpReg = /^http:\/\/[a-zA-Z0-9-_:/.?&=]+$/;
if (!strExpReg.test(txtCampoActual.value)){
strMensaje = 'La página web no es válida,\ncontiene carácteres ';
strMensaje += 'no válidos o no empieza por "http://"';
alert(strMensaje);
txtCampoActual.focus();
return false;
}
return true;
end function
En este caso, la validación se realiza del lado del cliente (al ser Javascript) y la función recibe como parámetro el campo del formulario donde irá la URL, mostrando un mensaje de error si la URL no es válida y devolviendo el foco a ese campo.
Obtener su versión en ASP y otros lenguajes es fácil adaptando la expresión regular a la sintaxis de cada lenguaje
Etiquetas:
expresiones regulares,
validar campos,
validar URL
3 Comentarios »
Publicado en Programación
Para validar direcciones de e-mail podemos utilizar la siguiente función en ASP:
function esValidoEmail(cadena)
set expReg = New RegExp
expReg.Pattern = "^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@_
[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*$"
esValidoEmail = expReg.Test(cadena) and len(cadena) < 256
set expReg = nothing
end function |
function esValidoEmail(cadena)
set expReg = New RegExp
expReg.Pattern = "^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@_
[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*$"
esValidoEmail = expReg.Test(cadena) and len(cadena) < 256
set expReg = nothing
end function
Su versión en Javascript:
function esValidoEmail(cadena) {
strExpReg = /^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@_
[_a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*$/;
return strExpReg.test(cadena);
} |
function esValidoEmail(cadena) {
strExpReg = /^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@_
[_a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*$/;
return strExpReg.test(cadena);
}
Como en las otras funciones, en esta función en Javascript sí que es necesario juntar la expresión en una única línea quitando los _ de final de línea porque de lo contrario no funcionará.
Etiquetas:
expresiones regulares,
validar campos,
validar e-mail
No Hay Comentarios »
Publicado en Programación
Continuando con las expresiones regulares, para validar fechas se puede utilizar la siguiente función en ASP:
function esValidoFecha(cadena)
set expReg = New RegExp
expReg.Pattern = "^(((0[1-9]|[12][0-9]|3[01])([/])(0[13578]|10|12)([/])_
(\d{4}))|(([0][1-9]|[12][0-9]|30)([/])(0[469]|11)_
([/])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([/])(02)([/])_
(\d{4}))|((29)(\.|-|\/)(02)([/])([02468][048]00))|_
((29)([/])(02)([/])([13579][26]00))|((29)([/])(02)_
([/])([0-9][0-9][0][48]))|((29)([/])(02)([/])([0-9]_
[0-9][2468][048]))|((29)([/])(02)([/])([0-9][0-9]_
[13579][26])))$"
esValidoFecha = expReg.Test(cadena)
set expReg = nothing
end function |
function esValidoFecha(cadena)
set expReg = New RegExp
expReg.Pattern = "^(((0[1-9]|[12][0-9]|3[01])([/])(0[13578]|10|12)([/])_
(\d{4}))|(([0][1-9]|[12][0-9]|30)([/])(0[469]|11)_
([/])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([/])(02)([/])_
(\d{4}))|((29)(\.|-|\/)(02)([/])([02468][048]00))|_
((29)([/])(02)([/])([13579][26]00))|((29)([/])(02)_
([/])([0-9][0-9][0][48]))|((29)([/])(02)([/])([0-9]_
[0-9][2468][048]))|((29)([/])(02)([/])([0-9][0-9]_
[13579][26])))$"
esValidoFecha = expReg.Test(cadena)
set expReg = nothing
end function
La expresión regular (que se puede poner en una única línea eliminando los _ finales) es un poco larga porque ha de tener en cuenta los días de los meses del año, los años bisiestos,… Para validar del lado del cliente (antes de enviar el formulario), se puede utilizar el mismo patrón en Javascript:
function esValidoFecha(cadena) {
strExpReg = /^(((0[1-9]|[12][0-9]|3[01])([/])(0[13578]|10|12)([/])_
(\d{4}))|(([0][1-9]|[12][0-9]|30)([/])(0[469]|11)_
([/])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([/])(02)([/])_
(\d{4}))|((29)(\.|-|\/)(02)([/])([02468][048]00))|_
((29)([/])(02)([/])([13579][26]00))|((29)([/])(02)_
([/])([0-9][0-9][0][48]))|((29)([/])(02)([/])([0-9]_
[0-9][2468][048]))|((29)([/])(02)([/])([0-9][0-9]_
[13579][26])))$/;
return strExpReg.test(cadena);
} |
function esValidoFecha(cadena) {
strExpReg = /^(((0[1-9]|[12][0-9]|3[01])([/])(0[13578]|10|12)([/])_
(\d{4}))|(([0][1-9]|[12][0-9]|30)([/])(0[469]|11)_
([/])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([/])(02)([/])_
(\d{4}))|((29)(\.|-|\/)(02)([/])([02468][048]00))|_
((29)([/])(02)([/])([13579][26]00))|((29)([/])(02)_
([/])([0-9][0-9][0][48]))|((29)([/])(02)([/])([0-9]_
[0-9][2468][048]))|((29)([/])(02)([/])([0-9][0-9]_
[13579][26])))$/;
return strExpReg.test(cadena);
}
En esta función en Javascript sí que es necesario juntar la expresión en una única línea quitando los _ porque de lo contrario no funcionará.
Etiquetas:
expresiones regulares,
validar,
validar campos,
validar fechas
10 Comentarios »
Publicado en Programación
Las expresiones regulares en programación son útiles para validar campos enviados y parámetros recibidos de formularios web en lenguaje ASP o Javascript.
Etiquetas:
asp,
expresiones regulares,
formularios web,
RegExLib,
sql inyectado,
validar campos
No Hay Comentarios »