Master string manipulation with substring, slice, replace, split, and common text operations.
slice() and substring() to extract portions of strings.replace() and replaceAll() to substitute text inside strings.split() and join() to convert between strings and arrays.includes() instead of indexOf() !== -1 to write cleaner, more readable boolean search checks on strings.localeCompare() instead of comparison operators when sorting strings containing accented characters to ensure correct alphabetical ordering.substr() method because it is not supported in some modern environments and libraries.trim() and replace() always return new string values.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"indexOf()Returns the index of the first occurrence of a specified substring.
const text = "hello world";
text.indexOf("world"); // 6
text.indexOf("xyz"); // -1includes()Performs a case-sensitive search to determine if a substring exists.
const text = "hello world";
text.includes("world"); // truestartsWith()Checks if a string begins with the characters of a specified string.
const text = "hello";
text.startsWith("he"); // truesearch()Executes a regular expression search and returns the first matching index.
const text = "hello123";
text.search(/\d+/); // 5replace()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 conversionTransforms all characters in a string to uppercase or lowercase forms.
const text = "Hello";
text.toUpperCase(); // "HELLO"
text.toLowerCase(); // "hello"Replace callbackUses 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()Splits a string into an array of substrings using a separator.
const text = "a,b,c";
text.split(","); // ["a", "b", "c"]join()Concatenates all elements of an array into a single string separator.
["a", "b", "c"].join(","); // "a,b,c"split limitTruncates the resulting array to a specified maximum number of elements.
const text = "a,b,c,d";
text.split(",", 2); // ["a", "b"]regex splitSplits a string using a regular expression to match multiple separators.
const text = "one, two; three";
text.split(/[,;]\s*/); // ["one", "two", "three"]trim()Removes whitespace characters from both the beginning and end of strings.
const text = " hello ";
text.trim(); // "hello"trimStart()Removes whitespace characters only from the beginning of a string.
const text = " hello";
text.trimStart(); // "hello"padStart()Pads the current string from the start with a given fill character.
const text = "5";
text.padStart(3, "0"); // "005"repeat()Returns a new string containing the specified number of concatenated copies.
const text = "-";
text.repeat(10); // "----------"Both methods extract parts of strings using start and end indices. However, slice() supports negative indices to count from the end of the string. The substring() method treats negative values as zero. Prefer slice() for its flexibility.
Use replaceAll('old', 'new') to replace every match of a literal substring. Alternatively, use a regular expression with the global flag like replace(/pattern/g, 'new'). The standard replace() method only replaces the first occurrence.
Chain the split() and join() methods to transform the text. For example, 'hello world'.split(' ') creates an array of words. Rejoin them using .join('-') to produce the dashed string 'hello-world'.
Use padStart(targetLength, padChar) to insert characters from the left. For example, '7'.padStart(3, '0') outputs '007'. To pad from the right, use padEnd() instead.
These methods perform clean boolean checks to verify string boundaries. They return true if the string starts or ends with the target substring. Both methods accept an optional index to adjust the search boundary.
Formatting and Normalizing User Names
Cleans up messy text inputs by trimming excess whitespace and capitalizing the first letter of each name word.
function cleanName(rawName) {
const trimmed = rawName.trim();
if (!trimmed) return "";
const words = trimmed.split(/\s+/);
const capitalized = words.map(w => {
const first = w[0].toUpperCase();
const rest = w.slice(1).toLowerCase();
return first + rest;
});
return capitalized.join(" ");
}Chain trimming, splitting, mapping, and joining to build powerful and clean text normalization pipelines.