Strings are a sequence of zero or more characters written inside quotes used to represent text.
Strings may consist of letters, numbers, symbols, words, or sentences.
Strings are immutable, they cannot be changed.
Each character in a string has an index.
The first character will be index 0 the second character will be index 1 and so on.
There are two ways to access an individual character in a string.
charAt() method
const str1 = "abc"; string
str1.charAt(0); character at index 0 → "a"
str1.charAt(1); character at index 1 → "b"
str1.charAt(2); character at index 2 → "c"
str1.charAt(3); character at index 3 → "" index not found
Alternatively use at() or slice() methods
bracket notation []
const str2 = "abc"; string
str2[0]; character at index 0 → "a"
str2[1]; character at index 1 → "b"
str2[2]; character at index 2 → "c"
str2[3]; character at index 3 → undefined index not found
Arrays are used to store multiple values in a single variable.
Each value is called an element, and each element has a numeric position in the array, known as its index.
Arrays are zero-indexed, meaning the first element is at index 0, the second at index 1, and so on.
Arrays can contain any data type, including numbers, strings, and objects.
const arr1 = [2, 4, 6]; array
arr1[0]; element at index 0 → 2
arr1[1]; element at index 1 → 4
arr1[2]; element at index 2 → 6
arr1[3]; element at index 3 → undefined index not found
Check if a string is a palindrome using ↴
Regular Expression → patterns used to match character combinations in strings.
replace() method → returns a new string with the value(s) replaced.
toLowerCase() method → returns the value of the string converted to lower case.
split() method → splits a string into an array of substrings.
reverse() method → reverses the order of the elements in an array.
join() method → returns an array as a string.
Regular expressions are patterns used to match character combinations in strings.
The Regular Expression /[^A-Za-z0-9]/g defines a regular expression that matches any character that is NOT an upper case or lower case letter or a digit.
^ caret symbol at the beginning of the square brackets, negates the character set.
[^A-Z] matches anything that is NOT enclosed between A and Z
[^a-z] matches anything that is NOT enclosed between a and z
[^0-9] matches anything that is NOT enclosed between 0 and 9
/g flag indicates that the search should be global, meaning it will find all occurrences.
replace() method searches a string for a value or a regular expression and returns a new string with the value replaced.
If pattern is a string, only the first occurrence will be replaced.
syntax
string.replace(pattern, replacement)
const str3 = "hello world";
str3.replace("hello", "HELLO"); replace "hello" with "HELLO"
returns ↴
"HELLO world"
const str4 = "ABCDEF";
str4.replace("B", ""); replace "B" with "" empty string
returns ↴
"ACDEF" → "B" removed from string
toLowerCase() method converts all letters to lower case. The original string is unchanged.
const str5 = "hELlo wORLd";
str5.toLowerCase(); returns ↴
"hello world" → lower case
split() method splits a string into an array of substrings based on a specified separator (delimiter). The original string is unchanged.
("") separator → string is split between each character.
(" ") separator → string is split at each space character, resulting in an array of words.
const str6 = "Hello"; → string
str6.split(""); returns ↴
["H", "e", "l", "l", "o"] → array
const str7 = "hello world"; → string
str7.split(" "); returns ↴
["hello", "world"] → array
reverse() method reverses the order of the elements in an array.
const arr2 = ["H", "e", "l", "l", "o"]; array
arr2.reverse(); returns ↴
["o", "l", "l", "e", "H"] → array
join() method joins all elements of an array into a single string with a specified separator between each element. The original array is unchanged.
("") separator → returns a string joined with no spaces between each character.
(" ") separator → returns string joined with a single space between each element.
const arr3 = ["H", "e", "l", "l", "o"]; array
arr3.join(""); returns ↴
"Hello" → string
const arr4 = ["Hello", "World"]; array
arr4.join(" "); returns ↴
"Hello World" → string
Chaining these 3 built-in functions together to reverse a string ↴
const str8 = "Hello"; → string to be reversed
str8.split("").reverse().join(""); returns ↴
"olleH" → string
Initialize a variable to hold the string to check for a Palindrome.
const string1 = "Kayak"; → user input
Define a function palindrome to check if a string is a Palindrome.
function palindrome(str) {}
The function takes a string as input str and returns true if the given string is a palindrome, otherwise returns false.
Use a regular expression to match non-alphanumeric characters.
const regEx = /[^A-Za-z0-9]/g regEx
Remove non-alphanumeric characters and convert string to lower case.
const cleanedStr = str.replace(regEx, "").toLowerCase() cleanedStr
Convert the cleaned string to an array, reverse its elements and return back as a string.
const reversedStr = cleanedStr.split("").reverse().join("") reversedStr
Compare the reversed string with the original cleaned string.
Check if reversedStr is strictly equal to cleanedStr
return reversedStr === cleanedStr
If the comparison function returns true, the string is a palindrome ✔
If the comparison function returns false, the string is not a palindrome ✖
Call the function with ↴
palindrome(string1);
Check if string is a palindrome.
const string1 = "Kayak";
function palindrome(str) {
const regEx = /[^A-Za-z0-9]/g;
const cleanedStr = str.replace(regEx, "").toLowerCase();
const reversedStr = cleanedStr.split("").reverse().join("");
return reversedStr === cleanedStr;
}
call function
palindrome(string1); returns ↴
true
Alternative regular expression pattern ↴
/[^A-Za-z0-9]/g same as ↴
/[^a-z0-9]/gi case-insensitive
Valid Palindromes ↴
A man, a plan, a canal. Panama
Never odd or even
Pull up if I pull up
Stressed desserts
Evil, olive!
Race car
Radar
Kayak