Cadenas de JavaScript
En JavaScript, las cadenas se usan para almacenar y manipular texto. No existe un tipo separado para un solo carácter. El formato interno de las cadenas siempre es UTF-16.
Una cadena representa cero o más caracteres que se escriben entre comillas.
Funciones populares de cadenas
| Function | Description |
|---|---|
charAt(index) | Returns the character at the specified index. |
charCodeAt(index) | Returns the Unicode of the character at the specified index. |
concat(...strings) | Concatenates the string arguments to the calling string and returns a new string. |
includes(searchString, position) | Determines whether the calling string contains the searchString. |
indexOf(searchValue, fromIndex) | Returns the index of the first occurrence of searchValue in the string, starting the search at fromIndex. Returns -1 if the value is not found. |
lastIndexOf(searchValue, fromIndex) | Returns the index of the last occurrence of searchValue within the calling string, searching backwards from fromIndex. Returns -1 if the value is not found. |
match(regexp) | Retrieves the matches when matching a string against a regular expression. |
matchAll(regexp) | Returns an iterator of all results matching a string against a regular expression, including capturing groups. |
repeat(count) | Returns a new string consisting of the calling string repeated count times. |
replace(searchFor, replaceWith) | Replaces the first match of a substring or pattern with a replacement string. |
replaceAll(searchFor, replaceWith) | Replaces all matches of a substring or pattern with a replacement string. |
search(regexp) | Searches the string for a match against a regular expression, and returns the index of the match. |
slice(startIndex, endIndex) | Extracts a section of a string and returns it as a new string, without modifying the original string. |
split(separator, limit) | Divides a string into an ordered list of substrings, puts these substrings into an array, and returns the array. The division is done by searching for a pattern; where the pattern is provided as the first parameter in the method's call. |
startsWith(searchString, position) | Determines whether the calling string begins with the characters of searchString. |
substring(startIndex, endIndex) | Returns the part of the string between the start and end indexes, or to the end of the string. |
toLowerCase() | Returns the calling string value converted to lowercase. |
toUpperCase() | Returns the calling string value converted to uppercase. |
trim() | Trims whitespace from both ends of the string. |
trimStart() or trimLeft() | Trims whitespace from the beginning of the string. |
trimEnd() or trimRight() | Trims whitespace from the end of the string. |
valueOf() | Returns the primitive value of a String object. |
Acerca de las comillas
Podemos distinguir comillas simples, comillas dobles y backticks:
strings in javascript
let single = 'single-quoted';
let double = "double-quoted";
let backticks = `backticks`;Las comillas dobles y simples son iguales. De todos modos, los backticks son diferentes. Puedes usarlos para incrustar cualquier expresión en la cadena envolviéndola en ${…} de la siguiente manera:
Strings in javascript
Una de las ventajas más importantes de los backticks es que permiten que una cadena abarque varias líneas, como esta:
Strings in javascript
Pero, ten en cuenta que las comillas simples y dobles no funcionarán en este caso. Si las usas intentando aplicar varias líneas, se producirá un error:
strings in javascript
let guestList = "Guests: // Error: Unexpected token ILLEGAL
* John ";Las comillas simples y dobles aparecieron antes que los backticks. Por eso, los backticks son más funcionales.
También puedes especificar una “función de plantilla” antes del primer backtick. La sintaxis se verá así:
strings in javascript
func `string`Por regla general, la función func se llama automáticamente. Recibe tanto la cadena como las expresiones incrustadas, procesándolas. Usando esta característica, puedes implementar rápidamente plantillas personalizadas. De todos modos, los desarrolladores rara vez la usan en la práctica.
Caracteres especiales
Puedes crear cadenas multilínea con comillas dobles y simples con la ayuda de \n, así:
Strings in javascript
Existen otros caracteres especiales menos comunes.
Encuentra algunos de ellos en la lista de abajo:
- \', \" estos caracteres especiales se usan para las comillas
- \r - retorno de carro. Este carácter ahora se usa solo. Una combinación de dos caracteres \r\n se usa para representar un salto de línea en archivos de texto de Windows.
- \\ - barra invertida
- \t - tabulación
- \xXX - carácter Unicode con un Unicode hexadecimal XX específico
- \uXXXX - este es un símbolo Unicode con el código hexadecimal XXXX en codificación UTF-16. Debe incluir exactamente 4 dígitos.
Aquí hay ejemplos con unicodes:
Unicode strings in javascript
Ten en cuenta que todos los caracteres especiales comienzan con una barra invertida. También se conoce como “carácter de escape”.
También puedes usarlo en caso de que quieras poner una comilla dentro de la cadena.
Aquí tienes un ejemplo:
Strings in javascript
Además, considera que la barra invertida se usa principalmente para corregir la lectura de la cadena por JavaScript, después de lo cual desaparece. En la memoria de la cadena, no puedes encontrar ninguna \ . Pero cuando necesites mostrar una barra invertida real dentro de la cadena, debes duplicarla, como en este ejemplo:
Strings in javascript
La longitud de la cadena
La propiedad length se usa para encontrar la longitud de una cadena:
Strings length in javascript
Ten en cuenta que \n es un carácter especial. Por lo tanto, la longitud debe ser 7.
A veces los desarrolladores escriben mal esta propiedad llamando a str.length() en lugar de solo str.length. Eso no funcionará.
Acceso a caracteres
Los corchetes [pos] se usan principalmente para obtener un carácter en una posición [pos]. También puedes hacerlo llamando al método str.charAt(pos). El primer carácter debe empezar desde cero:
Character at a position strings in javascript
Los desarrolladores modernos prefieren usar los corchetes, mientras que charAt rara vez se usa
Las cadenas son inmutables
No es posible cambiar las cadenas en JavaScript. Mira este ejemplo para asegurarte de que no funcionará:
Change character at a position strings in javascript
La práctica habitual es crear una cadena completamente nueva y asignarla a str en lugar de la anterior, así:
Character at a position strings in javascript
Cambio de mayúsculas y minúsculas
Podemos distinguir dos métodos para cambiar el caso. Aquí están:
toUpperCase change strings in javascript
En otro escenario, si un solo carácter debe estar en minúscula, usa este método:
toLowerCase change strings in javascript
Búsqueda de una subcadena
Descubramos las formas de buscar una subcadena dentro de una cadena.
str.indexOf
Este es el primer método que se usa para buscar el substr en str. Comienza desde la posición particular pos y devuelve esa posición cuando se encuentra la coincidencia, o -1, en caso de que no se encuentre nada.
Veamos el siguiente ejemplo:
Index strings in javascript
str.lastIndexOf(substr, position)
Este método busca desde el final de una cadena hacia el principio. Las apariciones se enumerarán en orden inverso.
Considera una pequeña dificultad con indexOf dentro de la prueba if. No se puede poner en if de esta manera:
Index strings in javascript
Por lo tanto, es necesario comprobar -1, como sigue:
Index strings in javascript
Includes, startsWith, endsWith
El método más moderno str.includes(substr, pos) es capaz de devolver true/false según si hay substr en str.
Actúa como en el ejemplo, si necesitas comprobar la coincidencia sin necesitar su posición al mismo tiempo:
Includes strings in javascript
El segundo argumento de str.includes es la posición desde la que empiezas a buscar. Aquí tienes un ejemplo:
Includes strings in javascript
Obtención de una subcadena
JavaScript incluye tres métodos para obtener una subcadena: substring, substr y slice.
str.slice(start [, end])
Este método se usa para devolver la parte de la cadena desde start hasta end.
Por ejemplo:
The slice method in javascript strings
Si falta un segundo argumento, slice irá hasta el final, así:
Slice in javascript strings
Para start/end también puedes usar valores negativos.
Por ejemplo:
The slice in javascript strings
str.substring(start [, end])
Este método se usa para devolver la parte de la cadena entre start y end.
Se parece mucho a slice. La diferencia más notable es que, en el marco de este método, start puede ser mayor que end.
Por ejemplo:
The substring in javascript strings
str.substr(start [, length])
Este método devuelve la parte de la cadena desde start, con una longitud determinada. Se diferencia de los métodos anteriores. Este método te ayudará a especificar la length en lugar de la posición final.
Por ejemplo:
The substr in javascript strings
El primer argumento puede ser negativo para contar desde el final:
The substr in javascript strings
Comparación de cadenas
Es esencial saber que las cadenas deben compararse carácter por carácter en orden alfabético.
También sería mejor que consideraras las siguientes características:
- Una minúscula es mayor que una mayúscula, así:
Comparison in javascript strings
- Las letras que contienen signos diacríticos se consideran “fuera de orden”. Por ejemplo:
Comparison in javascript strings
Ahora, empecemos a revisar la representación interna de las cadenas en JavaScript.
En JavaScript, codificamos todas las cadenas usando UTF-16. Eso significa que cada uno de los caracteres tiene un código numérico apropiado.
str.codePointAt(pos)
Se usa para devolver el código del carácter en la posición pos :
Return the code for the character at position javascript string
String.fromCodePoint(code)
Crea un carácter a partir del código numérico:
Character's numeric code javascript string
Los caracteres Unicode también se pueden añadir por sus códigos aplicando \u seguido del código hexadecimal.
Por ejemplo:
Unicode characters javascript string
Veamos los caracteres con códigos 65..220 y formemos una cadena con ellos:
Unicode characters javascript string
Aquí puedes notar que primero van los caracteres mayúsculos, luego varios caracteres especiales y, finalmente, Ö al final de la salida.
Practice
What are some characteristics or functions of strings in JavaScript as described in the article?