|
1181
|
Programación / Programación C/C++ / Re: Quitar acentos de un string
|
en: 10 Julio 2015, 19:55 pm
|
Ahhh es para formatear urls amigables, entonces dale un vistazo a esto: https://github.com/WordPress/WordPress/blob/master/wp-includes/formatting.php#LC968Te servirá para crear reglas similares en c++, está hecho en php y es la función nativa de Wordpress para crear las urls amigables: function remove_accents( $string ) { return $string; if (seems_utf8($string)) { // Decompositions for Latin-1 Supplement // Decompositions for Latin Extended-A // Decompositions for Latin Extended-B // Euro Sign // GBP (Pound) Sign // Vowels with diacritic (Vietnamese) // unmarked // grave accent // hook // tilde // acute accent // dot below // Vowels with diacritic (Chinese, Hanyu Pinyin) // macron // acute accent // caron // grave accent ); // Used for locale-specific rules $locale = get_locale(); if ( 'de_DE' == $locale || 'de_DE_formal' == $locale ) { $chars[ chr(195).chr(132) ] = 'Ae'; $chars[ chr(195).chr(164) ] = 'ae'; $chars[ chr(195).chr(150) ] = 'Oe'; $chars[ chr(195).chr(182) ] = 'oe'; $chars[ chr(195).chr(156) ] = 'Ue'; $chars[ chr(195).chr(188) ] = 'ue'; $chars[ chr(195).chr(159) ] = 'ss'; } elseif ( 'da_DK' === $locale ) { $chars[ chr(195).chr(134) ] = 'Ae'; $chars[ chr(195).chr(166) ] = 'ae'; $chars[ chr(195).chr(152) ] = 'Oe'; $chars[ chr(195).chr(184) ] = 'oe'; $chars[ chr(195).chr(133) ] = 'Aa'; $chars[ chr(195).chr(165) ] = 'aa'; } $string = strtr($string, $chars); } else { // Assume ISO-8859-1 if not UTF-8 $chars['out'] = "EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy"; $string = strtr($string, $chars['in'], $chars['out']); $double_chars['out'] = array('OE', 'oe', 'AE', 'DH', 'TH', 'ss', 'ae', 'dh', 'th'); $string = str_replace($double_chars['in'], $double_chars['out'], $string); } return $string; }
|
|
|
1186
|
Programación / Programación General / Re: Hilo oficial: Solicitudes de Expresiones Regulares
|
en: 5 Julio 2015, 18:50 pm
|
Está bueno agrupar en 3 el grupo de la red a diferencia de la de owasp que las hace por separado, pero de todas maneras deberías agregarle el comienzo ^ y el final $ o si no cuando uses esa validación en un campo de texto que solo soporte un valor de ip validará texto basura antes y después de la ip como por ejemplo: 127.0.0.1' union select '1 Dando paso a una inyección SQL ''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' A pattern that matches an IPv4 address. ''' ''' For Example: ''' 127.0.0.1 ''' </summary> ''' ---------------------------------------------------------------------------------------------------- Public Const Ipv4 As String = "^((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])$" En ese caso a tu clase deberías agregarle una opción booleana que indique si debe realizar una validación exacta o parcial, o sea con todo el contenido o parte de el en el caso que quieras validar ya que en tu código solo estás buscando una ip y no validando.
|
|
|
1188
|
Programación / Programación General / Re: Hilo oficial: Solicitudes de Expresiones Regulares
|
en: 5 Julio 2015, 18:17 pm
|
Pues es mas dificil a menos que cambies el orden pero tendras que adivinar o tener un diccionario de nombres y apellidos. Acá les dejo un repositorio muy bueno sobre expresiones regulares y validaciones: https://www.owasp.org/index.php/OWASP_Validation_Regex_RepositoryNote These Regexs are examples and not built for a particular Regex engine. However, the PCRE syntax is mainly used. In particular, this means that character classes do not contain meta characters which need to be escaped, except the - and ] character, where it is assumed that a - needs not to be escaped only when it is the last character in a character class. The character class supports shortcut notations for other character classes like \s or \w which should not be used as they depend on the LOCALE environment setting in most systems.
Please carefully test the regex in your regex engine. <?xml version="1.0"?> <regex> <name>url</name> <pattern><![CDATA[^((((https?|ftps?|gopher|telnet|nntp)://)|(mailto:|news:))(%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@&=+$,A-Za-z0-9])+)([).!';/?:,][[:blank:]])?$]]></pattern> <description>A valid URL per the URL spec.</description> </regex> <regex> <name>IP</name> <pattern><![CDATA[^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$]]></pattern> <description>A valid IP Address</description> </regex> <regex> <name>e-mail</name> <pattern><![CDATA[^[a-zA-Z0-9+&*-]+(?:\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,7}$]]></pattern> <description>A valid e-mail address</description> </regex> <regex> <name>safetext</name> <pattern><![CDATA[^[a-zA-Z0-9 .-]+$]]></pattern> <description>Lower and upper case letters and all digits</description> </regex> <regex> <name>date</name> <pattern><![CDATA[^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$]]></pattern> <description>Date in US format with support for leap years</description> </regex> <regex> <name>creditcard</name> <pattern><![CDATA[^((4\d{3})|(5[1-5]\d{2})|(6011)|(7\d{3}))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13}$]]></pattern> <description>A valid credit card number</description> </regex> <regex> <name>password</name> <pattern><![CDATA[^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{4,8}$]]></pattern> <description>4 to 8 character password requiring numbers and both lowercase and uppercase letters</description> </regex> <regex> <name>complexpassword</name> <pattern><![CDATA[^(?:(?=.*\d)(?=.*[A-Z])(?=.*[a-z])|(?=.*\d)(?=.*[^A-Za-z0-9])(?=.*[a-z])|(?=.*[^A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z])|(?=.*\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9]))(?!.*(.)\1{2,})[A-Za-z0-9!~<>,;:_=?*+#."&§%°()\|\[\]\-\$\^\@\/]{8,32}$]]></pattern> <description>4 to 32 character password requiring at least 3 out 4 (uppercase and lowercase letters, numbers and special characters) and no more than 2 equal characters in a row</description> </regex> <regex> <name>English_digitwords</name> <pattern><![CDATA[^(zero|one|two|three|four|five|six|seven|eight|nine)$]]></pattern> <description>The English words representing the digits 0 to 9</description> </regex> <regex> <name>English_daywords</name> <pattern><![CDATA[^(Mo|Tu|We|Th|Fr|Sa|Su)$]]></pattern> <description>English 2 character abbreviations for the days of the week</description> </regex> <regex> <name>English_monthwords</name> <pattern><![CDATA[^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)$]]></pattern> <description>English 3 character abbreviations for the months</description> </regex> <regex> <name>French_digitwords</name> <pattern><![CDATA[^(z[eé]ro|un|deux|trois|quatre|cinq|six|sept|huit|neuf)$]]></pattern> <description>The French words representing the digits 0 to 9</description> </regex> <regex> <name>German_digitwords</name> <pattern><![CDATA[^(null|eins|zwei|drei|vier|f(ue|ü)nf|sechs|sieben|acht|neun)$]]></pattern> <description>The German words representing the digits 0 to 9</description> </regex> <regex> <name>Spanish_digitwords</name> <pattern><![CDATA[^(cero|uno|dos|tres|cuatro|cinco|seis|siete|ocho|nueve)$]]></pattern> <description>The Spanish words representing the digits 0 to 9</description> </regex> <regex> <name>US_zip</name> <pattern><![CDATA[^\d{5}(-\d{4})?$]]></pattern> <description>US zip code with optional dash-four</description> </regex> <regex> <name>US_phone</name> <pattern><![CDATA[^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$]]></pattern> <description>US phone number with or without dashes</description> </regex> <regex> <name>US_state</name> <pattern><![CDATA[^(AE|AL|AK|AP|AS|AZ|AR|CA|CO|CT|DE|DC|FM|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MH|MD|MA|MI|MN|MS|MO|MP|MT|NE|NV|NH|NJ|NM|NY|NC|ND|OH|OK|OR|PW|PA|PR|RI|SC|SD|TN|TX|UT|VT|VI|VA|WA|WV|WI|WY)$]]></pattern> <description>2 letter U.S. state abbreviations</description> </regex> <regex> <name>US_ssn</name> <pattern><![CDATA[^\d{3}-\d{2}-\d{4}$]]></pattern> <description>9 digit U.S. social security number with dashes</description> </regex> <!-- Some additional examples that have not been vetted // HTML HEX CODE ^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$ // FLOATING POINT ^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$ // PERSON NAME ^[a-zA-Z]+(([',. -][a-zA-Z ])?[a-zA-Z]*)*$ // MAC ADDRESS ^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$ // GUID ^[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}$ // IP ADDRESS ^\b((25[0-5]|2[0-4]\d|[01]\d\d|\d?\d)\.){3}(25[0-5]|2[0-4]\d|[01]\d\d|\d?\d)\b$ // IP ADDRESS (^\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b$ // REASONABLE DOMAIN NAME ^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$ // RFC 1918 NON ROUTABLE IP ^(((25[0-5]|2[0-4][0-9]|19[0-1]|19[3-9]|18[0-9]|17[0-1]|17[3-9]|1[0-6][0-9]|1[1-9]|[2-9][0-9]|[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9]))|(192\.(25[0-5]|2[0-4][0-9]|16[0-7]|169|1[0-5][0-9]|1[7-9][0-9]|[1-9][0-9]|[0-9]))|(172\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|1[0-5]|3[2-9]|[4-9][0-9]|[0-9])))\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$ // VALID WINDOWS FILENAME ^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)[^\x00-\x1f\\?*:\";|/]+$ // // // Warning, per http://en.wikipedia.org/wiki/ReDoS the Java Classname RegEx below is vulnerable to RegExDos // Java Classname ^(([a-z])+.)+[A-Z]([a-z])+$ // // ANY PLATFORM FILENAME ^(([a-zA-Z]:|\\)\\)?(((\.)|(\.\.)|([^\\/:*?"|<>. ](([^\\/:*?"|<>. ])|([^\\/:*?"|<>]*[^\\/:*?"|<>. ]))?))\\)*[^\\/:*?"|<>. ](([^\\/:*?"|<>. ])|([^\\/:*?"|<>]*[^\\/:*?"|<>. ]))?$ -->
Yo uso muchos de ellos en mis desarrollos. Saludos.
|
|
|
1189
|
Foros Generales / Noticias / Re: La próxima versión de Firefox viene con una sorpresa… algo desagradable
|
en: 5 Julio 2015, 02:27 am
|
Google Chrome ya lo hace y mientras mozilla sea imparcial no habrá problema, por lo contrario, para mi sería de muy buena ayuda ya que no necesitaría entrar a google para encontrar rápidamente el enlace que necesito. Esto no es nuevo y tampoco lo veo como una "sorpresa desagradable" en ninguna manera, esto aumentará la precisión de lo que estoy buscando. Pero ojo, siempre y cuando estas sugerencias sean imparciales, ya que en caso de que no lo fuera como lo hace ubuntu con el menú de inicio y los resultados de amazon entonces ahi si estaría en total desacuerdo, pero mientras sea utilizado a mi beneficio como lo hace google en el buscador entonces no hay problema.
|
|
|
1190
|
Foros Generales / Noticias / Re: Nova OS, así es el sistema que utilizan los ordenadores en Cuba
|
en: 1 Julio 2015, 16:57 pm
|
De esta manera en cierta forma previenen el espionaje por parte de las empresas que maneja el gobierno de los estados unidos a través de la nsa.
Si hubiera una guerra y el gobierno opositor a estados unidos usa windows en sus pc y servidores, crees que no tendrían acceso a sus datos confidenciales?, Apple es una empresa diseñada a la alternativa a windows, el que no le gusta windows usa mac y el control estaría asegurado por igual, salvo con Linux, mas que la guerra por la estabilidad económica es el poder de la información y seguimiento, una forma de asegurarse en el futuro de posibles guerras y conflictos, eso de asegurarse contra el terrorismo es solo una escusa y de esto china, rusia y al parecer ahora cuba entienden muy bien.
|
|
|
|
|
|
|