<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Programador ASP &#187; javascript</title>
	<atom:link href="http://programadorasp.com/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://programadorasp.com</link>
	<description>Programación en Internet</description>
	<lastBuildDate>Fri, 03 Feb 2012 20:09:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Reemplazar carácteres con expresiones regulares en ASP para generar URL&#8217;s amigables</title>
		<link>http://programadorasp.com/generar-urls-amigables-asp-expresiones-regulares/</link>
		<comments>http://programadorasp.com/generar-urls-amigables-asp-expresiones-regulares/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 19:10:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Buscadores]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[acentos]]></category>
		<category><![CDATA[ansi]]></category>
		<category><![CDATA[asp]]></category>
		<category><![CDATA[cadena de texto]]></category>
		<category><![CDATA[carácteres extraños]]></category>
		<category><![CDATA[comillas]]></category>
		<category><![CDATA[expresiones regulares]]></category>
		<category><![CDATA[iso-8859-1]]></category>
		<category><![CDATA[patrón expresión regular]]></category>
		<category><![CDATA[Pattern]]></category>
		<category><![CDATA[permalinks]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[reemplazar carácteres]]></category>
		<category><![CDATA[RegExp]]></category>
		<category><![CDATA[replace]]></category>
		<category><![CDATA[string]]></category>
		<category><![CDATA[tildes]]></category>
		<category><![CDATA[URL friendly]]></category>
		<category><![CDATA[URL's amigables]]></category>
		<category><![CDATA[UTF-8]]></category>

		<guid isPermaLink="false">http://programadorasp.com/?p=503</guid>
		<description><![CDATA[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
Related posts:<ol>
<li><a href='http://programadorasp.com/codificacion-utf-8-incorrecta-php-leyendo-base-datos-mysql/' rel='bookmark' title='Codificación UTF-8 incorrecta en PHP leyendo una base de datos MySQL'>Codificación UTF-8 incorrecta en PHP leyendo una base de datos MySQL</a></li>
<li><a href='http://programadorasp.com/la-world-wide-web-y-el-html-cumplen-20-anos/' rel='bookmark' title='La World Wide Web y el HTML cumplen 20 años'>La World Wide Web y el HTML cumplen 20 años</a></li>
<li><a href='http://programadorasp.com/convertir-archivos-web-estaticos-dinamicos-introducir-codigo/' rel='bookmark' title='Interpretar páginas web estáticas como php, asp o cualquier lenguaje'>Interpretar páginas web estáticas como php, asp o cualquier lenguaje</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>En ocasiones en <strong>ASP</strong> hemos querido <strong>reemplazar carácteres</strong> de un texto o una cadena para eliminar los acentos y los carácteres extraños como paréntesis, puntos, comas, corchetes, ñ, ç,&#8230; Por ejemplo, para generar <strong>URL&#8217;s amigables</strong> para los buscadores (URL friendly o permalinks), necesitamos convertir las cadenas a texto plano <strong>sin carácteres extraños</strong>. Podemos hacer funciones de reemplazo de carácteres intentando tener en cuenta todos los carácteres extraños que nos podamos encontrar en una cadena, pero las <strong>expresiones regulares</strong> y sus herramientas de reemplazo nos pueden ayudar mucho. Se trata de utilizar el operador <strong>.replace</strong> del objeto de expresión regular en ASP, jugando con los <strong>patrones</strong> para las condiciones.</p>
<p>En la funcion siguiente, a partir de una <strong>cadena de texto</strong> dada se convierte a una cadena amigable para los buscadores, eliminando los carácteres extraños. En primer lugar, se eliminan los espacios a ambos lados de la cadena y se reemplazan o eliminan los carácteres que pueden dar problemas en bases de datos como las <strong>comillas</strong> simples y dobles, saltos de línea y espacios. Después se usan las <strong>expresiones regulares</strong> para eliminar de las vocales las tildes abiertas y cerradas, diéresis,&#8230; y para sustituir la ñ y la ç por n y c respectivamente. Es decir, los carácteres que <strong>cumplan el patrón</strong> de la expresión regular serán sustituidos por el carácter dado. Por último, se eliminan los carácteres restantes que <strong>no cumplan el patrón</strong> de URL amigable (letras minúsculas, números y guión).</p>

<div class="wp_syntax"><div class="code"><pre class="asp" style="font-family:monospace;"><span style="color: #0000ff; font-weight: bold;">function</span> convertirAURLfriendly<span style="color: #006600; font-weight:bold;">&#40;</span>cadena<span style="color: #006600; font-weight:bold;">&#41;</span>
  <span style="color: #990099; font-weight: bold;">if</span> <span style="color: #990099; font-weight: bold;">not</span> isNull<span style="color: #006600; font-weight:bold;">&#40;</span>cadena<span style="color: #006600; font-weight:bold;">&#41;</span> <span style="color: #990099; font-weight: bold;">then</span>
    <span style="color: #008000;">' Eliminamos los espacios a ambos lados de la cadena</span>
    strCadena <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #330066;">Trim</span><span style="color: #006600; font-weight:bold;">&#40;</span><span style="color: #330066;">lCase</span><span style="color: #006600; font-weight:bold;">&#40;</span>cadena<span style="color: #006600; font-weight:bold;">&#41;</span><span style="color: #006600; font-weight:bold;">&#41;</span>
    <span style="color: #008000;">' Reemplazamos carácteres especiales</span>
    strCadena <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #330066;">replace</span><span style="color: #006600; font-weight:bold;">&#40;</span><span style="color: #330066;">replace</span><span style="color: #006600; font-weight:bold;">&#40;</span>strCadena,<span style="color: #cc0000;">&quot;'&quot;</span>,<span style="color: #cc0000;">&quot;&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span>,<span style="color: #cc0000;">&quot;&quot;</span><span style="color: #cc0000;">&quot;&quot;</span>,<span style="color: #cc0000;">&quot;&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span>
    strCadena <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #330066;">replace</span><span style="color: #006600; font-weight:bold;">&#40;</span><span style="color: #330066;">replace</span><span style="color: #006600; font-weight:bold;">&#40;</span>strCadena,<span style="color: #cc0000;">&quot;&amp;quot;&quot;</span>,<span style="color: #cc0000;">&quot;&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span>,vbcrlf,<span style="color: #cc0000;">&quot;&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span>
    strCadena <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #330066;">replace</span><span style="color: #006600; font-weight:bold;">&#40;</span><span style="color: #330066;">replace</span><span style="color: #006600; font-weight:bold;">&#40;</span>strCadena,<span style="color: #cc0000;">&quot;&lt;br&gt;&quot;</span>,<span style="color: #cc0000;">&quot;&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span>,<span style="color: #cc0000;">&quot; &quot;</span>,<span style="color: #cc0000;">&quot;-&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span>
    <span style="color: #990099; font-weight: bold;">set</span> expReg <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #0000ff; font-weight: bold;">New</span> RegExp
    <span style="color: #008000;">' Todas las ocurrencias</span>
    expReg.<span style="color: #990099; font-weight: bold;">Global</span> <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #0000ff; font-weight: bold;">True</span>
    expReg.<span style="color: #9900cc;">Pattern</span> <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #cc0000;">&quot;[àáâãäå]&quot;</span>
    strCadena <span style="color: #006600; font-weight: bold;">=</span> expReg.<span style="color: #330066;">Replace</span><span style="color: #006600; font-weight:bold;">&#40;</span>strCadena, <span style="color: #cc0000;">&quot;a&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span>
    expReg.<span style="color: #9900cc;">Pattern</span> <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #cc0000;">&quot;[èéêë]&quot;</span>
    strCadena <span style="color: #006600; font-weight: bold;">=</span> expReg.<span style="color: #330066;">Replace</span><span style="color: #006600; font-weight:bold;">&#40;</span>strCadena, <span style="color: #cc0000;">&quot;e&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span>
    expReg.<span style="color: #9900cc;">Pattern</span> <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #cc0000;">&quot;[ìíîï]&quot;</span>
    strCadena <span style="color: #006600; font-weight: bold;">=</span> expReg.<span style="color: #330066;">Replace</span><span style="color: #006600; font-weight:bold;">&#40;</span>strCadena, <span style="color: #cc0000;">&quot;i&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span>
    expReg.<span style="color: #9900cc;">Pattern</span> <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #cc0000;">&quot;[òóôõö]&quot;</span>
    strCadena <span style="color: #006600; font-weight: bold;">=</span> expReg.<span style="color: #330066;">Replace</span><span style="color: #006600; font-weight:bold;">&#40;</span>strCadena, <span style="color: #cc0000;">&quot;o&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span>
    expReg.<span style="color: #9900cc;">Pattern</span> <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #cc0000;">&quot;[ùúûü]&quot;</span>
    strCadena <span style="color: #006600; font-weight: bold;">=</span> expReg.<span style="color: #330066;">Replace</span><span style="color: #006600; font-weight:bold;">&#40;</span>strCadena, <span style="color: #cc0000;">&quot;u&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span>
    expReg.<span style="color: #9900cc;">Pattern</span> <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #cc0000;">&quot;[ñ]&quot;</span>
    strCadena <span style="color: #006600; font-weight: bold;">=</span> expReg.<span style="color: #330066;">Replace</span><span style="color: #006600; font-weight:bold;">&#40;</span>strCadena, <span style="color: #cc0000;">&quot;n&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span>
    expReg.<span style="color: #9900cc;">Pattern</span> <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #cc0000;">&quot;[ç]&quot;</span>
    strCadena <span style="color: #006600; font-weight: bold;">=</span> expReg.<span style="color: #330066;">Replace</span><span style="color: #006600; font-weight:bold;">&#40;</span>strCadena, <span style="color: #cc0000;">&quot;c&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span>
    <span style="color: #008000;">' Todo lo que no cumpla este patron</span>
    expReg.<span style="color: #9900cc;">Pattern</span> <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #cc0000;">&quot;[^a-z0-9-]&quot;</span>
    strCadena <span style="color: #006600; font-weight: bold;">=</span> expReg.<span style="color: #330066;">Replace</span><span style="color: #006600; font-weight:bold;">&#40;</span>strCadena, <span style="color: #cc0000;">&quot;&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span>
    <span style="color: #990099; font-weight: bold;">set</span> expReg <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #0000ff; font-weight: bold;">nothing</span>
    convertirAURLfriendly <span style="color: #006600; font-weight: bold;">=</span> left<span style="color: #006600; font-weight:bold;">&#40;</span>strCadena,<span style="color: #800000;">256</span><span style="color: #006600; font-weight:bold;">&#41;</span>
  <span style="color: #990099; font-weight: bold;">else</span>
    convertirAURLfriendly <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #cc0000;">&quot;&quot;</span>
  <span style="color: #990099; font-weight: bold;">end</span> <span style="color: #990099; font-weight: bold;">if</span>
<span style="color: #990099; font-weight: bold;">end</span> <span style="color: #0000ff; font-weight: bold;">function</span></pre></div></div>

<p>Hacer la conversión de la función anterior a otros lenguajes como <strong>PHP</strong> o <strong>Javascript</strong> es relativamente sencillo, en otros artículos de este blog se pueden encontrar ejemplos de expresiones regulares en Javascript. De hecho, la función anterior an ASP para generar URL&#8217;s amigables me funcionaba en archivos ANSI con codificación iso-8859-1, pero da problemas con los acentos y carácteres extraños cuando el archivo está en <strong>UTF-8</strong>. Así que después de darle muchas vueltas, convertí la función de ASP a Javascript y la llamaba antes de enviar el formulario, es decir generaba la <strong>URL amigable</strong> desde Javascript y lo almacenaba en una variable hidden que también envío con el formulario. La función en <strong>Javascript</strong> que funciona para UTF-8:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> convertirAURLfriendly<span style="color: #009900;">&#40;</span>str<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  strCadena <span style="color: #339933;">=</span> str<span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>strCadena<span style="color: #339933;">!=</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    strCadena <span style="color: #339933;">=</span> strCadena.<span style="color: #660066;">toLowerCase</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #006600; font-style: italic;">// Elimina espacios al principio y al final</span>
    strCadena <span style="color: #339933;">=</span> strCadena.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/^\s*|\s*$/g</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    strCadena <span style="color: #339933;">=</span> strCadena.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&amp;quot;&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    strCadena <span style="color: #339933;">=</span> strCadena.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot; &quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;-&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;_&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;-&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    strExpReg <span style="color: #339933;">=</span> <span style="color: #009966; font-style: italic;">/[àáâãäå]/gi</span><span style="color: #339933;">;</span>
    strCadena <span style="color: #339933;">=</span> strCadena.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span>strExpReg<span style="color: #339933;">,</span><span style="color: #3366CC;">'a'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    strExpReg <span style="color: #339933;">=</span> <span style="color: #009966; font-style: italic;">/[èéêë]/gi</span><span style="color: #339933;">;</span>
    strCadena <span style="color: #339933;">=</span> strCadena.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span>strExpReg<span style="color: #339933;">,</span><span style="color: #3366CC;">'e'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    strExpReg <span style="color: #339933;">=</span> <span style="color: #009966; font-style: italic;">/[ìíîï]/gi</span><span style="color: #339933;">;</span>
    strCadena <span style="color: #339933;">=</span> strCadena.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span>strExpReg<span style="color: #339933;">,</span><span style="color: #3366CC;">'i'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    strExpReg <span style="color: #339933;">=</span> <span style="color: #009966; font-style: italic;">/[òóôõö]/gi</span><span style="color: #339933;">;</span>
    strCadena <span style="color: #339933;">=</span> strCadena.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span>strExpReg<span style="color: #339933;">,</span><span style="color: #3366CC;">'o'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    strExpReg <span style="color: #339933;">=</span> <span style="color: #009966; font-style: italic;">/[ùúûü]/gi</span><span style="color: #339933;">;</span>
    strCadena <span style="color: #339933;">=</span> strCadena.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span>strExpReg<span style="color: #339933;">,</span><span style="color: #3366CC;">'u'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    strExpReg <span style="color: #339933;">=</span> <span style="color: #009966; font-style: italic;">/[ñ]/gi</span><span style="color: #339933;">;</span>
    strCadena <span style="color: #339933;">=</span> strCadena.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span>strExpReg<span style="color: #339933;">,</span><span style="color: #3366CC;">'n'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    strExpReg <span style="color: #339933;">=</span> <span style="color: #009966; font-style: italic;">/[ç]/gi</span><span style="color: #339933;">;</span>
    strCadena <span style="color: #339933;">=</span> strCadena.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span>strExpReg<span style="color: #339933;">,</span><span style="color: #3366CC;">'c'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #006600; font-style: italic;">// Todo lo que no cumpla este patron</span>
    strExpReg <span style="color: #339933;">=</span> <span style="color: #009966; font-style: italic;">/[^a-z0-9-]/gi</span><span style="color: #339933;">;</span>
    strCadena <span style="color: #339933;">=</span> strCadena.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span>strExpReg<span style="color: #339933;">,</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">return</span> strCadena.<span style="color: #660066;">substring</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">''</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Related posts:<ol>
<li><a href='http://programadorasp.com/codificacion-utf-8-incorrecta-php-leyendo-base-datos-mysql/' rel='bookmark' title='Codificación UTF-8 incorrecta en PHP leyendo una base de datos MySQL'>Codificación UTF-8 incorrecta en PHP leyendo una base de datos MySQL</a></li>
<li><a href='http://programadorasp.com/la-world-wide-web-y-el-html-cumplen-20-anos/' rel='bookmark' title='La World Wide Web y el HTML cumplen 20 años'>La World Wide Web y el HTML cumplen 20 años</a></li>
<li><a href='http://programadorasp.com/convertir-archivos-web-estaticos-dinamicos-introducir-codigo/' rel='bookmark' title='Interpretar páginas web estáticas como php, asp o cualquier lenguaje'>Interpretar páginas web estáticas como php, asp o cualquier lenguaje</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://programadorasp.com/generar-urls-amigables-asp-expresiones-regulares/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generar password y contraseñas aleatorias con javascript</title>
		<link>http://programadorasp.com/generar-password-y-contrasenas-aleatorias-con-javascript/</link>
		<comments>http://programadorasp.com/generar-password-y-contrasenas-aleatorias-con-javascript/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 13:24:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[aleatorio]]></category>
		<category><![CDATA[contraseña]]></category>
		<category><![CDATA[password]]></category>

		<guid isPermaLink="false">http://www.programadorasp.com/?p=199</guid>
		<description><![CDATA[Descargar utilidad para generar contraseñas Podéis descargar la utilidad para generar passwords aleatorios y ejecutarla (sin necesidad de instalarla) en los navegadores más populares, como Microsoft Internet Explorer o Mozilla Firefox, haciendo doble clic sobre el archivo &#8220;generar_password.htm&#8221; o añadiéndola a Favoritos del navegador. Este archivo contiene una de las funciones más útiles que suelo [...]
Related posts:<ol>
<li><a href='http://programadorasp.com/eliminar-saltos-de-linea-en-un-textarea-con-javascript/' rel='bookmark' title='Eliminar saltos de línea en un textarea con Javascript'>Eliminar saltos de línea en un textarea con Javascript</a></li>
<li><a href='http://programadorasp.com/modificar-el-contenido-de-cualquier-pagina-web-cargada-en-local-con-javascript/' rel='bookmark' title='Modificar el contenido de cualquier página web cargada en local con Javascript'>Modificar el contenido de cualquier página web cargada en local con Javascript</a></li>
<li><a href='http://programadorasp.com/la-world-wide-web-y-el-html-cumplen-20-anos/' rel='bookmark' title='La World Wide Web y el HTML cumplen 20 años'>La World Wide Web y el HTML cumplen 20 años</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://programadorasp.com/wp-content/uploads/2009/01/generar_password.htm" target="_blank">Descargar utilidad para generar contraseñas</a></p>
<p>Podéis descargar la utilidad para generar passwords aleatorios y ejecutarla (sin necesidad de instalarla) en los navegadores más populares, como Microsoft Internet Explorer o Mozilla Firefox, haciendo doble clic sobre el archivo &#8220;generar_password.htm&#8221; o añadiéndola a Favoritos del navegador.</p>
<p>Este archivo contiene una de las funciones más útiles que suelo usar para generar passwords o contraseñas para correo, redes sociales, bases de datos,&#8230;, programada en Javascript:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> generarPassword<span style="color: #009900;">&#40;</span>form<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
 <span style="color: #003366; font-weight: bold;">var</span> strCaracteresPermitidos <span style="color: #339933;">=</span> <span style="color: #3366CC;">'a,b,c,d,e,f,g,h,i,j,k,m,n,p,q,r,'</span><span style="color: #339933;">;</span>
 strCaracteresPermitidos <span style="color: #339933;">+=</span> <span style="color: #3366CC;">'s,t,u,v,w,x,y,z,1,2,3,4,5,6,7,8,9'</span><span style="color: #339933;">;</span>
 <span style="color: #003366; font-weight: bold;">var</span> strArrayCaracteres <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">34</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 strArrayCaracteres <span style="color: #339933;">=</span> strCaracteresPermitidos.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">','</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #003366; font-weight: bold;">var</span> length <span style="color: #339933;">=</span> form.<span style="color: #660066;">txtCampoLongitud</span>.<span style="color: #660066;">value</span><span style="color: #339933;">,</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> j<span style="color: #339933;">,</span> tmpstr <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
 <span style="color: #000066; font-weight: bold;">do</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #003366; font-weight: bold;">var</span> randscript <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">1</span>
  <span style="color: #000066; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>randscript <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> <span style="color: #CC0000;">1</span> <span style="color: #339933;">||</span> randscript <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> strArrayCaracteres.<span style="color: #660066;">length</span> <span style="color: #339933;">||</span>
           isNaN<span style="color: #009900;">&#40;</span>randscript<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   randscript <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> strArrayCaracteres.<span style="color: #660066;">length</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#125;</span>
  j <span style="color: #339933;">=</span> randscript<span style="color: #339933;">;</span>
  tmpstr <span style="color: #339933;">=</span> tmpstr <span style="color: #339933;">+</span> strArrayCaracteres<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
  i <span style="color: #339933;">=</span> i <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> length<span style="color: #009900;">&#41;</span>
 form.<span style="color: #660066;">txtCampoPassword</span>.<span style="color: #660066;">value</span> <span style="color: #339933;">=</span> tmpstr<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Lo que hace esta función es escoger carácteres aleatorios del array strCaracteresPermitidos, hasta una longitud dada. En este caso concreto, se generan cadenas aleatorias con letras minúsculas y números, y no se incluyen carácteres que puedan resultar confusos, como la letra &#8220;l&#8221; (L, ele) que puede confundirse con el número &#8220;1&#8243;, o la letra &#8220;o&#8221; (O) que puede ser confundida con el número &#8220;0&#8243;. Se pueden añadir otros carácteres o letras mayúsculas ampliando el array strCaracteresPermitidos, así como la dimensión (número de elementos) del array strArrayCaracteres.</p>
<p>Para que funcione esta función tal como está, debe ir acompañada de un código HTML similar a:</p>
<pre lang="html4strict&gt;&lt;form&gt;   &lt;input type=">&lt;form&gt;
 &lt;input type="text" name="txtCampoPassword" size="20"&gt;&amp;nbsp;&amp;nbsp;
 &lt;input type="button" value="Generar" onClick="generarPassword(this.form);"&gt;
 &lt;br&gt;
 Longitud password:
 &lt;input type="text" name="txtCampoLongitud" size="4" value="8"&gt;
&lt;/form&gt;</pre>
<p>que contiene el campo con el password generado, el botón para ir generándolos y el campo donde se le especifica la longitud de la contraseña.</p>
<p>Podéis descargar el archivo HTML completo (con la función javascript en su interior) <a href="http://programadorasp.com/wp-content/uploads/2009/01/generar_password.htm" target="_blank">aquí</a> y ejecutarlo en los navegadores más populares, como Microsoft Internet Explorer o Mozilla Firefox.</p>
<p><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service facebook_like" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fprogramadorasp.com%2Fgenerar-password-y-contrasenas-aleatorias-con-javascript%2F&amp;layout=button_count&amp;show_faces=false&amp;width=75&amp;action=like&amp;colorscheme=light&amp;height=20&amp;ref=addtoany" scrolling="no" style="border:none;overflow:hidden;width:90px;height:21px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service facebook_like" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fprogramadorasp.com%2Fgenerar-password-y-contrasenas-aleatorias-con-javascript%2F&amp;layout=button_count&amp;show_faces=false&amp;width=75&amp;action=like&amp;colorscheme=light&amp;height=20&amp;ref=addtoany" scrolling="no" style="border:none;overflow:hidden;width:90px;height:21px"></iframe><!--<![endif]--><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service twitter_tweet" src="http://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fprogramadorasp.com%2Fgenerar-password-y-contrasenas-aleatorias-con-javascript%2F&amp;counturl=http%3A%2F%2Fprogramadorasp.com%2Fgenerar-password-y-contrasenas-aleatorias-con-javascript%2F&amp;count=horizontal&amp;text=Generar%20password%20y%20contrase%C3%B1as%20aleatorias%20con%20javascript" scrolling="no" style="border:none;overflow:hidden;width:130px;height:20px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service twitter_tweet" src="http://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fprogramadorasp.com%2Fgenerar-password-y-contrasenas-aleatorias-con-javascript%2F&amp;counturl=http%3A%2F%2Fprogramadorasp.com%2Fgenerar-password-y-contrasenas-aleatorias-con-javascript%2F&amp;count=horizontal&amp;text=Generar%20password%20y%20contrase%C3%B1as%20aleatorias%20con%20javascript" scrolling="no" style="border:none;overflow:hidden;width:130px;height:20px"></iframe><!--<![endif]--><!--[if IE]><iframe frameborder="0" allowTransparency="true" class="addtoany_special_service google_plusone" src="https://plusone.google.com/u/0/_/%2B1/fastbutton?url=http%3A%2F%2Fprogramadorasp.com%2Fgenerar-password-y-contrasenas-aleatorias-con-javascript%2F&amp;size=medium&amp;count=true" scrolling="no" style="border:none;overflow:hidden;width:90px;height:20px"></iframe><![endif]--><!--[if !IE]><!--><iframe class="addtoany_special_service google_plusone" src="https://plusone.google.com/u/0/_/%2B1/fastbutton?url=http%3A%2F%2Fprogramadorasp.com%2Fgenerar-password-y-contrasenas-aleatorias-con-javascript%2F&amp;size=medium&amp;count=true" scrolling="no" style="border:none;overflow:hidden;width:90px;height:20px"></iframe><!--<![endif]--><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fprogramadorasp.com%2Fgenerar-password-y-contrasenas-aleatorias-con-javascript%2F&amp;title=Generar%20password%20y%20contrase%C3%B1as%20aleatorias%20con%20javascript" id="wpa2a_2">Compartir / Guardar</a></p><p>Related posts:<ol>
<li><a href='http://programadorasp.com/eliminar-saltos-de-linea-en-un-textarea-con-javascript/' rel='bookmark' title='Eliminar saltos de línea en un textarea con Javascript'>Eliminar saltos de línea en un textarea con Javascript</a></li>
<li><a href='http://programadorasp.com/modificar-el-contenido-de-cualquier-pagina-web-cargada-en-local-con-javascript/' rel='bookmark' title='Modificar el contenido de cualquier página web cargada en local con Javascript'>Modificar el contenido de cualquier página web cargada en local con Javascript</a></li>
<li><a href='http://programadorasp.com/la-world-wide-web-y-el-html-cumplen-20-anos/' rel='bookmark' title='La World Wide Web y el HTML cumplen 20 años'>La World Wide Web y el HTML cumplen 20 años</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://programadorasp.com/generar-password-y-contrasenas-aleatorias-con-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

