ไม่มีฟังชั่นใดๆ ที่แก้ไขตัวแปรโดยตรง this – ฟังชั่นจะส่งค่าสตริงตัวใหม่คืนกลับมาให้เสมอ
- 
charAt(ตำแหน่ง: ตัวเลข): คืนค่าเป็นข้อความES1Returns the character at index pos, as a string (JavaScript does not have a datatype for characters).str[i]is equivalent tostr.charAt(i)and more concise (caveat: may not work on old engines).> 'abc'.charAt(1) 'b'
- 
charCodeAt(pos: number): numberES1Returns the 16-bit number (0–65535) of the UTF-16 code unit (character) at index pos.> 'abc'.charCodeAt(1) 98
- 
codePointAt(pos: number): number | undefinedES6Returns the number of the Unicode code point of the 1–2 characters at index pos. If there is no such index, it returnsundefined.
- 
concat(...strings: string[]): stringES3Returns the concatenation of thisandstrings.'a'+'b'is equivalent to'a'.concat('b')and more concise.> 'ab'.concat('cd', 'ef', 'gh') 'abcdefgh'
- 
endsWith(searchString: string, endPos=this.length): booleanES6Returns trueifthisends withsearchStringat indexendPosandfalse, otherwise.> 'foo.txt'.endsWith('.txt') true > 'abc'.endsWith('ab', 2) true
- 
includes(searchString: string, startPos=0): booleanES6Returns trueifthiscontains thesearchStringandfalse, otherwise. The search starts atstartPos.> 'abc'.includes('b') true > 'abc'.includes('b', 2) false
- 
indexOf(searchString: string, minIndex=0): numberES1Returns the lowest index at which searchStringappears withinthis, or-1, otherwise. Any returned index will beminIndexor higher.> 'abab'.indexOf('a') 0 > 'abab'.indexOf('a', 1) 2 > 'abab'.indexOf('c') -1
- 
lastIndexOf(searchString: string, maxIndex=Infinity): numberES1Returns the highest index at which searchStringappears withinthis, or-1, otherwise. Any returned index will bemaxIndexor lower.> 'abab'.lastIndexOf('ab', 2) 2 > 'abab'.lastIndexOf('ab', 1) 0 > 'abab'.lastIndexOf('ab') 2
- 
match(regExp: string | RegExp): RegExpMatchArray | nullES3If regExpis a regular expression with flag/gnot set then.match()returns the first match forregExpwithinthis. Ornullif there is no match. IfregExpis a string, it is converted to a regular expression before performing the previous steps.The result has the following type: interface RegExpMatchArray extends Array<string> { index: number; input: string; groups: undefined | { [key: string]: string }; } Numbered capture groups become Array indices. Named capture groups (ES2018) become properties of .groups. In this mode,.match()works likeRegExp.prototype.exec().Examples: > 'ababb'.match(/a(b+)/) [ 'ab', 'b', index: 0, input: 'ababb', groups: undefined ] > 'ababb'.match(/a(?<foo>b+)/) [ 'ab', 'b', index: 0, input: 'ababb', groups: { foo: 'b' } ] > 'abab'.match(/x/) null
- 
match(regExp: RegExp): string[] | nullES3If flag /gofregExpis set,.match()returns either an Array with all matches ornullif there was no match.> 'ababb'.match(/a(b+)/g) [ 'ab', 'abb' ] > 'ababb'.match(/a(?<foo>b+)/g) [ 'ab', 'abb' ] > 'abab'.match(/x/g) null
- 
normalize(form: 'NFC'|'NFD'|'NFKC'|'NFKD' = 'NFC'): stringES6Normalizes thisaccording to the Unicode Normalization Forms.
- 
padEnd(len: number, fillString=' '): stringES2017Appends fillStringtothisuntil it has the desired lengthlen.> '#'.padEnd(2) '# ' > 'abc'.padEnd(2) 'abc' > '#'.padEnd(5, 'abc') '#abca'
- 
padStart(len: number, fillString=' '): stringES2017Prepends fillStringtothisuntil it has the desired lengthlen.> '#'.padStart(2) ' #' > 'abc'.padStart(2) 'abc' > '#'.padStart(5, 'abc') 'abca#'
- 
repeat(count=0): stringES6Returns a string that is this, repeatedcounttimes.> '*'.repeat() '' > '*'.repeat(3) '***'
- 
replace(searchValue: string | RegExp, replaceValue: string): stringES3Replace matches of searchValuewithreplaceValue. IfsearchValueis a string, only the first verbatim occurrence is replaced. IfsearchValueis a regular expression without flag/g, only the first match is replaced. IfsearchValueis a regular expression with/gthen all matches are replaced.> 'x.x.'.replace('.', '#') 'x#x.' > 'x.x.'.replace(/./, '#') '#.x.' > 'x.x.'.replace(/./g, '#') '####'Special characters in replaceValueare:- $$: becomes- $
- $n: becomes the capture of numbered group- n(alas,- $0does not work)
- $&: becomes the complete match
- $`: becomes everything before the match
- $': becomes everything after the match
 Examples: > 'a 2018-04 b'.replace(/([0-9]{4})-([0-9]{2})/, '|$2|') 'a |04| b' > 'a 2018-04 b'.replace(/([0-9]{4})-([0-9]{2})/, '|$&|') 'a |2018-04| b' > 'a 2018-04 b'.replace(/([0-9]{4})-([0-9]{2})/, '|$`|') 'a |a | b'Named capture groups (ES2018) are supported, too: - $<name>becomes the capture of named group- name
 Example: > 'a 2018-04 b'.replace(/(?<year>[0-9]{4})-(?<month>[0-9]{2})/, '|$<month>|') 'a |04| b'
- 
replace(searchValue: string | RegExp, replacer: (substr: string, ...args: any[]) => string): stringES3If the second parameter is a function occurrences are replaced with the strings it returns. Its parameters are: - all: the complete match
- g1,- g2, etc.: whatever was captured by numbered group 1, etc.
- offset: where was the match found in the input string?
- string: the whole input string
 > 'a 2018-04 b'.replace(/([0-9]{4})-([0-9]{2})/, (all, year, month) => '|'+all+'|') 'a |2018-04| b'Named capture groups (ES2018) are supported, too. If there are any, a last parameter contains an object whose properties contain the captures: > const replacer = (...args) => { const groups=args.pop(); return '|'+groups.month+'|' }; > 'a 2018-04 b'.replace(/(?<year>[0-9]{4})-(?<month>[0-9]{2})/, replacer) 'a |04| b'
- 
search(regExp: string | RegExp): numberES3Returns the index at which regExpoccurs withinthis. IfregExpis a string, it is converted to a regular expression.> 'a2b'.search(/[0-9]/) 1 > 'a2b'.search('[0-9]') 1
- 
slice(start=0, end=this.length): stringES3Returns the substring of thisthat starts at (including) indexstartand ends at (excluding) indexend. You can use negative indices where-1meansthis.length-1(etc.).> 'abc'.slice(1, 3) 'bc' > 'abc'.slice(1) 'bc' > 'abc'.slice(-2) 'bc'
- 
split(separator: string | RegExp, limit?: number): string[]ES3Splits thisinto an Array of substrings – the strings that occur between the separators. The separator can either be a string or a regular expression. Captures made by groups in the regular expression are included in the result.> 'abc'.split('') [ 'a', 'b', 'c' ] > 'a | b | c'.split('|') [ 'a ', ' b ', ' c' ] > 'a | b | c'.split(/ *\| */) [ 'a', 'b', 'c' ] > 'a | b | c'.split(/( *)\|( *)/) [ 'a', ' ', ' ', 'b', ' ', ' ', 'c' ]
- 
startsWith(searchString: string, startPos=0): booleanES6Returns trueifthisstarts withsearchStringat indexstartPosandfalse, otherwise.> '.gitignore'.startsWith('.') true > 'abc'.startsWith('bc', 1) true
- 
substring(start: number, end=this.length): stringES1Use .slice()instead of this method..substring()wasn’t implemented consistently in older engines and doesn’t support negative indices.
- 
toUpperCase(): stringES1Returns a copy of thisin which all lowercase alphabetic characters are converted to uppercase. How well that works for various alphabets depends on the JavaScript engine.> '-a2b-'.toUpperCase() '-A2B-' > 'αβγ'.toUpperCase() 'ΑΒΓ'
- 
toLowerCase(): stringES1Returns a copy of thisin which all uppercase alphabetic characters are converted to lowercase. How well that works for various alphabets depends on the JavaScript engine.> '-A2B-'.toLowerCase() '-a2b-' > 'ΑΒΓ'.toLowerCase() 'αβγ'
- 
trim(): stringES5Returns a copy of thisin which all leading and trailing whitespace is removed.> '\r\n# \t'.trim() '#'
- String methods of various ECMAScript versions in detail: http://exploringjs.com
- https://github.com/Microsoft/TypeScript/blob/master/lib/lib.es6.d.ts
- MDN
- ECMAScript spec