ไม่มีฟังชั่นใดๆ ที่แก้ไขตัวแปรโดยตรง 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 groupn(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 groupname
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 matchg1,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