📂
LeetCode Note
  • Introduction
  • Tools
    • Clean Code
    • 英文小辭典
    • JS Reference
    • 常見 Edge Case
    • Array Method
    • Object Method
    • Function
    • Hashing
    • Prototype
    • 處理 Array 小撇步
    • String Method
    • Math / Date
    • loop
    • JSON.xx / localStorage
    • Date
    • Regex
    • Memorization
    • reduce condition
    • 命名
  • 筆記 Note
    • Promise
    • Walking the DOM
    • Element size and scrolling
    • CSS
  • Leetcode todo
    • ToDo
  • Array
    • # Select random poker without duplicates
    • # 最少替換達成不連續字串
    • # 724 Find Pivot Index
    • # 747. Largest Number At Least Twice of Others
    • # 01 getMaxProfit
    • # maxOfBiggestVal
    • # findSecondLargest
    • # 41 First Missing Positive
    • # 134 Gas Station (有圖)
    • # 202 Happy Number
    • # 344 Reverse String
    • # 412 Fizz Buzz
    • # 561 Array Partition I
    • # 804 Unique Morse Code Words
    • # 905 Sort Array By Parity
    • # 121. Best Time to Buy and Sell Stock.js
    • # 122 Best Time to Buy and Sell Stock II
    • # 189 Rotate Array
    • # 229 Majority Element II
    • # 268 Missing Number.
    • # 299 Bulls and Cows (有圖)
    • # 896 Monotonic Array
    • # 1002 Find Common Characters
    • # 1051 Height Checker
    • # 1185 Day of the Week
    • # 169 Majority Element
    • # 605. Can Place Flowers
    • # 350 Intersection of Two Arrays II (有圖)
    • # 482. License Key Formatting
  • Set / Map
    • # GetLengthOfLongestSubstring
    • #1 Two Sum
    • # 217 Contains Duplicate
    • # 1122 Relative Sort Array
    • # 1160 Find Words That Can Be Formed by Characters
    • #811 Subdomain Visit Count
    • # 349 Intersection of Two Arrays
    • # 819 Most Common Word
  • Two Pointer
    • #704. Binary Search
    • #26 Remove Duplicates from Sorted Array (有圖)
    • #27 Remove Element
    • # 66 Plus One
    • # 80 Remove Duplicates from Sorted Array II (有圖)
    • # 88 Merge Sorted Array (有圖)
    • # 125 Valid Palindrome
    • #167 Two Sum II - Input array is sorted (有圖)
    • # 283 Move Zeroes (有圖)
    • # 38 Count and Say
    • # 557. Reverse Words in a String III
    • #977 Squares of a Sorted Array
    • #209 Minimum Size Subarray Sum
  • String
    • # 13 Roman to Integer (有圖)
    • # 771 Jewels and Stones
    • # 937 Reorder Data in Log Files
    • # 929 Unique Email Addresses
    • # 1108 Defanging an IP Address
    • #14 Longest Common Prefix
    • # 387 First Unique Character in a String (有圖)
    • #193 Valid Phone Numbers
    • # 28 Implement strStr()
    • #383 Ransom Note
  • Stack
    • # 20 Valid Parentheses (有圖)
    • # 155 Min Stack
    • BF 165. remove characters
    • #1047 Remove All Adjacent Duplicates In String
  • Binary Search
    • # 1064 Fixed Point (有圖)
    • # 852 Peak Index in a Mountain Array
  • Recursion 遞迴
    • #2625. Flatten Deeply Nested Array
  • Math
    • # 7 Reverse Integer
    • # 9 Palindrome Number (有圖)
    • #53 Maximum Subarray (有圖)
    • # 1085 Sum of Digits in the Minimum Number.
    • # 136 Single Number
    • # 204 Count Primes (有圖)
    • #243 Shortest Word Distance
  • Dynamic Programing
    • # 322 Coin Change
    • # 509 Fibonacci Number (有圖)
    • # 70 Climbing Stairs
    • # 198 House Robber
    • # 168. Excel Sheet Column Title
  • Others
    • # 205. Isomorphic Strings
    • Implement js Array method
    • Flatten Array/Object
  • Matrix
    • 867. Transpose Matrix
  • Queue
    • DOM tree with queue
  • 排序
    • Different Sort
Powered by GitBook
On this page
  • Method Table
  • Match(regex)
  • Replace multiple strings with multiple other strings
  • Replace(egexp|substr, newSubstr|function)

Was this helpful?

  1. Tools

String Method

Method Table

Method

return

example

trim()

沒有多餘空格的 “字串” (只會移掉兩端空白)

" s".trim(); // "s"

Capture some words

indexOf(searchValue[, fromIndex])

搜尋字串(searchValue) 所在的 “位置 (Number)” 第二個參數 fromIndex 可以指定從哪個位置開始搜尋,若找不到會回傳 -1

'Blue'.indexOf('blue'); // -1

charAt(index)

位置(index) 所在的 “字串”,若找不到會回傳 ” 空字串

'Brave new world'.charAt(4) // e

substr(start[, length])

從 start 這個位置開始,總長 length 的 “字串”.若 length 沒有值則等於等於從 start 到字串最後一個字都抓出來

'abcdefghij'.substr(1, 2) // bc

substring(indexStart, indexEnd)

從 start 這個位置開始,到不包含 end 的字串

'abcdefghij'.substring(1, 2) // b

Find something

startsWith(str)

看是否為 str 開頭

"hannah".startsWith("ha") // true

match(regex)

符合 regex 條件的 “Array”,若沒有丟參數進去 Array[0] 會是 “” 空字串,若參數 regex 都不符合會回傳 null

"hannah1".match(/\d/i);

// [1, index: 6, input: 'hannah1'...]

search(regex)

符合 regex 條件並第一個找到的 Number,若找不到就會回傳 -1

"hey JudE".search(/[A-Z]/g) // 4

replace(regexp|substr, newSubstr|function)

原本字串用 regex 或 substr 搜尋,找到符合條件就用 newSubstr 取代成為新字串

var str = 'Twas the night before Xmas...';

str.replace(/xmas/i, 'Christmas'); var str = 'Twas the night'

str.replace(/the/i, (match) => "123"); // Twas 123 night

replaceAll(regexp|substr, newSubstr|function)

取代多個

var str = "minusminusplusplus"; str.replaceAll('minus', "-"); // "--plusplus"

slice(beginIndex[, endIndex])

切過的新字串(包含 beginIndex 不含 endIndex)

split([separator[, limit]])

(拆開) 回傳經過 separator 拆開的 Array,可以搭配使用 Array.join() 組合成不一樣的字串 (也可以用 regex)

"hi hana".split(" ");

// ['hi', 'hana']

split(/[^a-z]/)

// split 不是 alpha 的 "/.../a/../b/c/../d/./" -> ['', '...', 'a', '..', 'b', 'c', '..', 'd', '.', '']

includes(searchString[, position])

Boolean

'To be, or'.includes('To be') // true

charCodeAt(index)

將英文字母轉為 ASCII Code

'Aao'.charCodeAt(1) // a 是 97

String.fromCharCode(Number[, Number])

將數值轉換成回字串

String.fromCharCode(65, 97, 111) // Aao

Match(regex)

// 1
"hannah1".match(/\d/i)
// 2
let regex1 = new RegExp(/\d/, "i")
"hannah1".match(regex1)
var str = "minusminusplusplus"; // need convert to "--++"
let mapObj = {
    "minus": "-",
    "plus": "+"
}
str.replace(/minus|plus/gi, function(matched){
  return mapObj[matched];
});

Replace(egexp|substr, newSubstr|function)

原來 replace 也是可以帶 function 的喔

function 參數解釋

Possible name

Supplied value

match

The matched substring. (Corresponds to $& above.)

p1, p2, ...

offset

The offset of the matched substring within the whole string being examined. (For example, if the whole string was 'abcd', and the matched substring was 'bc', then this argument will be 1.)

string

The whole string being examined.

function replacer(match, p1, p2, p3, offset, string) {
  // p1 is nondigits, p2 digits, and p3 non-alphanumerics
  return [p1, p2, p3].join(' - ');
}
var newString = 'abc12345#$*%'.replace(/([^\d]*)(\d*)([^\w]*)/, replacer);
console.log(newString);  // abc - 12345 - #$*%
Previous處理 Array 小撇步NextMath / Date

Last updated 7 months ago

Was this helpful?

The nth string found by a parenthesized capture group, provided the first argument to replace() was a object. (Corresponds to $1, $2, etc. above.) For example, if /(\a+)(\b+)/, was given, p1 is the match for \a+, and p2 for \b+.

Replace multiple strings with multiple other strings
RegExp