Library
Learn/JavaScript/Chapter 31
4 min read

Working with Strings in JavaScript

Strings are one of the most common data types in JavaScript. They represent a sequence of characters and are widely used for tasks like manipulating text, displaying messages, or processing user input. In this article, we will dive into working with strings in JavaScript, understanding the different methods and techniques to manipulate them effectively.


1. What is a String?#

A string is simply a collection of characters wrapped in either single quotes ('), double quotes ("), or backticks (`). Strings are immutable in JavaScript, meaning that once a string is created, it cannot be changed directly. Any operation that seems to modify a string will actually create a new one.

Examples:

javascript
let singleQuoted = 'Hello, world!';
let doubleQuoted = "Hello, world!";
let templateLiteral = `Hello, world!`;

2. String Length#

The .length property is used to determine the number of characters in a string. It returns the length of the string, including spaces and special characters.

Example:

javascript
let greeting = "Hello!";
console.log(greeting.length);  // Output: 6

3. Accessing Characters in a String#

You can access individual characters in a string using the index, just like arrays. The first character is at index 0, the second character is at index 1, and so on.

Example:

javascript
let word = "JavaScript";
console.log(word[0]);  // Output: "J"
console.log(word[4]);  // Output: "S"

Alternatively, you can use the .charAt() method, which returns the character at a specified index.

Example:

javascript
let language = "JavaScript";
console.log(language.charAt(2));  // Output: "v"

4. String Methods for Manipulation#

JavaScript provides a wide variety of built-in methods for manipulating strings. Let’s explore some of the most commonly used ones.

4.1 .toUpperCase() and .toLowerCase()#

These methods are used to convert a string to all uppercase or lowercase letters.

Example:

javascript
let name = "john doe";
console.log(name.toUpperCase());  // Output: "JOHN DOE"
console.log(name.toLowerCase());  // Output: "john doe"

4.2 .trim()#

The .trim() method is used to remove whitespace from both ends of a string. It does not affect spaces within the string.

Example:

javascript
let message = "   Hello, world!   ";
console.log(message.trim());  // Output: "Hello, world!"

4.3 .includes()#

The .includes() method checks if a string contains a certain substring. It returns true if the substring is found, and false if not.

Example:

javascript
let sentence = "JavaScript is awesome!";
console.log(sentence.includes("awesome"));  // Output: true
console.log(sentence.includes("Python"));   // Output: false

4.4 .indexOf()#

The .indexOf() method returns the position of the first occurrence of a specified value. If the value is not found, it returns -1.

Example:

javascript
let phrase = "I love JavaScript!";
console.log(phrase.indexOf("love"));  // Output: 2
console.log(phrase.indexOf("Python"));  // Output: -1

4.5 .replace()#

The .replace() method is used to replace part of a string with another string. It only replaces the first occurrence by default, but you can use a regular expression to replace all occurrences.

Example:

javascript
let sentence = "I like apples";
let newSentence = sentence.replace("apples", "bananas");
console.log(newSentence);  // Output: "I like bananas"

For replacing all occurrences, use a regular expression with the g flag:

javascript
let sentence = "apple apple apple";
let newSentence = sentence.replace(/apple/g, "orange");
console.log(newSentence);  // Output: "orange orange orange"

4.6 .split()#

The .split() method divides a string into an array of substrings based on a specified separator.

Example:

javascript
let fruits = "apple,banana,cherry";
let fruitArray = fruits.split(",");
console.log(fruitArray);  // Output: ["apple", "banana", "cherry"]

5. Template Literals (Template Strings)#

Template literals are a new feature in JavaScript (introduced in ES6) that allow you to create strings in a more readable way, especially when dealing with variables or expressions.

Template literals are enclosed by backticks (`), and you can embed expressions inside the string using ${}.

Example:

javascript
let name = "Alice";
let age = 25;
let greeting = `Hello, my name is ${name} and I am ${age} years old.`;
console.log(greeting);  // Output: "Hello, my name is Alice and I am 25 years old."

6. String Escaping#

Sometimes, you may need to include special characters (like quotes or backslashes) in your strings. JavaScript allows you to escape these characters with a backslash (\).

Example:

javascript
let quote = "He said, \"JavaScript is awesome!\"";
console.log(quote);  // Output: He said, "JavaScript is awesome!"

You can also escape backslashes:

javascript
let path = "C:\\Users\\John\\Documents";
console.log(path);  // Output: C:\Users\John\Documents

7. String Concatenation#

There are different ways to concatenate (combine) strings in JavaScript. You can use the + operator, or use template literals for cleaner code.

Example using +:

javascript
let greeting = "Hello";
let name = "Alice";
let message = greeting + ", " + name + "!";
console.log(message);  // Output: "Hello, Alice!"

Example using template literals:

javascript
let greeting = "Hello";
let name = "Alice";
let message = `${greeting}, ${name}!`;
console.log(message);  // Output: "Hello, Alice!"

8. String Search and Matching#

JavaScript provides various methods to search and match strings. You can use regular expressions for complex matching or simpler methods like .startsWith(), .endsWith(), and .match().

8.1 .startsWith()#

Checks if a string starts with a specific sequence of characters.

Example:

javascript
let phrase = "Hello world";
console.log(phrase.startsWith("Hello"));  // Output: true

8.2 .endsWith()#

Checks if a string ends with a specific sequence of characters.

Example:

javascript
let phrase = "Hello world";
console.log(phrase.endsWith("world"));  // Output: true

8.3 .match()#

The .match() method matches a string against a regular expression and returns the results in an array.

Example:

javascript
let text = "The rain in Spain stays mainly in the plain.";
let matches = text.match(/in/g);
console.log(matches);  // Output: ["in", "in", "in"]

9. Summary#

  • Strings in JavaScript are sequences of characters and are immutable.
  • You can access individual characters using indexes or the .charAt() method.
  • String methods like .toUpperCase(), .toLowerCase(), .trim(), .includes(), .replace(), and .split() are commonly used to manipulate and search strings.
  • Template literals allow for easier string interpolation and multi-line strings.
  • Remember to escape special characters in strings using backslashes.

Practice Code Snippet#

Live code runner

Strings