Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

128
Visualizações
Javascript Regex para verificar si una cadena contiene caracteres acentuados

Actualmente estoy trabajando para verificar si una cadena contiene caracteres acentuados. por ejemplo

 hellohello ---> return true helloéèhello ---> return false because the text contains accent characters

¿alguien puede ayudarme con la expresión regular?

gracias

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

No estoy seguro de por qué quieres una respuesta basada en expresiones regulares. Pero si eso no es absolutamente necesario, así es como puede detectarlo.

( Descargo de responsabilidad: no estoy familiarizado con los idiomas europeos que tienen alfabetos acentuados, por lo que es posible que me haya perdido algún aspecto lingüístico aquí. Además, estoy más familiarizado con Java y el JavaScript aquí puede no ser óptimo).

ASCII

Si su texto es ASCII, entonces no conozco otra forma que recorrer la matriz de caracteres y comparar su valor ASCII para ver si es uno de los caracteres acentuados. Puede pasar del 1 al 255 e imprimir los caracteres.

Los caracteres acentuados, según veo, empiezan desde el 192 en adelante. Sin embargo, no todos los caracteres más allá de este lo son, por lo que tendrá que compararlos con el conjunto correcto.

Aquí hay un pseudocódigo que muestra lo que quiero decir. (No soy experto en JavaScript).

 /* This array has to be prepared by looking at all ASCII characters till 255. */ char[] accented = new char[]{ (char) 192, (char) 193, ... }; for( let c of Array.from( 'helloéèhello' ) ){ if( isPresentIn( c, accented ) ){ console.log( "Accented chars present" ) break; } }

Unicode

Si se trata de un texto Unicode, existe una forma indirecta de hacerlo utilizando la normalización de caracteres Unicode. En Unicode, los caracteres acentuados suelen ser caracteres compuestos. Entonces, puede descomponer el carácter y verificar si tiene un componente mayor que el punto de código 256.

Para comprenderlo en detalle, puede consultar la descripción en https://www.unicode.org/reports/tr15/tr15-23.html .

Esto no es perfecto, pero será una buena guía para crear un diseño más completo.

Descomponer en JavaScript:

 'helloéèhello'.normalize( 'NFD' )

Por ejemplo, é se descompone en e y el punto de código 768, è se descompone en e y el punto de código 769.

Tenga en cuenta la diferencia en los caracteres sin y después de la normalización.

 Array.from( 'helloéèhello'.normalize( 'NFD' ) ) (14) ['h', 'e', 'l', 'l', 'o', 'e', '́', 'e', '̀', 'h', 'e', 'l', 'l', 'o'] Array.from( 'helloéèhello' ) (12) ['h', 'e', 'l', 'l', 'o', 'é', 'è', 'h', 'e', 'l', 'l', 'o']
about 4 years ago · Juan Pablo Isaza Relatório

0

Si está tratando de verificar los correos electrónicos, consulte la respuesta que sugirió Alex, pero si solo desea verificar los dos casos de prueba anteriores, aquí está.

Tenga en cuenta que esto no es para probar un correo electrónico válido, solo una cadena válida

 ^[a-zA-Z@._]*[a-zA-z0-9]$

^ Comenzando con [a-zA-Z0-9@._] lowercase, uppercase, digits, @ , . & _ are valid characters meaning accent and other symbols are not valid * greedy select matching previous character sets [a-zA-z0-9]$` termina con datos alfanuméricos.

Ejemplo

 hello@gmail.com ---> return true helloégmail ---> return false because the text contains accent characters hello1 -> true test@ -> false as it should end with alphanumeric character
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda