JavaScript Strings

Slice, search, replace, split, and pad strings, and build them with template literal interpolation.

TL;DR

  1. Use slice() and substring() to extract portions of strings.
  2. Use replace() and replaceAll() to substitute text inside strings.
  3. Use split() and join() to convert between strings and arrays.

Extracting Substrings

    slice()

    Extracts a section of a string and returns it as a new string.

    const text = "Hello World";
    const res = text.slice(0, 5); // "Hello"
    const word = text.slice(-5);  // "World"
    substring()

    Extracts characters between two indices, treating negative index numbers as zero.

    const text = "Hello";
    const res = text.substring(1, 4); // "ell"
    substr()

    Extracts a substring starting at an index for a specified character length.

    const text = "Hello";
    const res = text.substr(1, 3); // "ell"

Finding and Checking

    indexOf()

    Returns the index of the first occurrence of a specified substring.

    const text = "hello world";
    text.indexOf("world"); // 6
    text.indexOf("xyz");   // -1
    includes()

    Performs a case-sensitive search to determine if a substring exists.

    const text = "hello world";
    text.includes("world"); // true
    startsWith()

    Checks if a string begins with the characters of a specified string.

    const text = "hello";
    text.startsWith("he"); // true
    search()

    Executes a regular expression search and returns the first matching index.

    const text = "hello123";
    text.search(/\d+/); // 5

Replace and Transform

    replace()

    Replaces the first match of a substring or regular expression pattern.

    const text = "hello world";
    text.replace("world", "there"); // "hello there"
    replaceAll()

    Replaces all occurrences of a literal substring or global regex pattern.

    const text = "hello hello";
    text.replaceAll("hello", "hi"); // "hi hi"
    Case conversion

    Transforms all characters in a string to uppercase or lowercase forms.

    const text = "Hello";
    text.toUpperCase(); // "HELLO"
    text.toLowerCase(); // "hello"
    Replace callback

    Uses a replacement function to compute custom replacements for each match.

    const text = "hello world";
    const title = text.replace(
      /\b\w/g,
      ch => ch.toUpperCase()
    );
    // "Hello World"

Split and Join & Trimming and Padding

    split()

    Splits a string into an array of substrings using a separator.

    "a,b,c".split(","); // ["a","b","c"]
    join()

    Joins array elements into a single string with a separator.

    ["a","b","c"].join(","); // "a,b,c"
    split limit

    Truncates the result to a max number of elements.

    "a,b,c,d".split(",", 2); // ["a","b"]
    regex split

    Splits using a regex to match multiple separators.

    "one, two; three".split(/[,;]\s*/);
    trim()

    Removes whitespace from both ends of a string.

    "  hello  ".trim(); // "hello"
    trimStart()

    Removes whitespace from the start of a string only.

    "  hello".trimStart(); // "hello"
    padStart()

    Pads the string from the start with a fill character.

    "5".padStart(3, "0"); // "005"
    repeat()

    Copies the string N times.

    "-".repeat(10); // "----------"

String Interpolation

    ${} syntax

    Inserts variables directly into strings without using the concatenation plus operator.

    const name = "Alice";
    const greeting = `Hello, ${name}!`;
    Expressions

    Evaluates any valid JavaScript expressions inside the interpolation curly braces.

    const a = 5, b = 10;
    const sum = `${a} + ${b} = ${a + b}`;

Tips

  1. Use includes() instead of indexOf() !== -1 to write cleaner, more readable boolean search checks on strings.
  2. Use localeCompare() instead of comparison operators when sorting strings containing accented characters to ensure correct alphabetical ordering.

Warnings

  1. Avoid using the deprecated substr() method because it is not supported in some modern environments and libraries.
  2. Remember that JavaScript strings are immutable, meaning methods like trim() and replace() always return new string values.

In Practice

FAQ