String
åºçº¿
广æ³å¯ç¨
*
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
* æ¤ç¹æ§çæäºé¨åçæ¯æç¨åº¦å¯è½ææä¸åã
String 对象ç¨äºè¡¨ç¤ºåæä½å符åºåã
æè¿°
å符串对äºä¿åå¯ä»¥ä»¥ææ¬å½¢å¼è¡¨ç¤ºçæ°æ®å¾æç¨ãä¸äºæå¸¸ç¨çå符串æä½æ¯æ£æ¥å®ä»¬çé¿åº¦ï¼ä½¿ç¨ + å += å符串è¿ç®ç¬¦æ¥æå»ºåè¿æ¥å®ä»¬ï¼ä½¿ç¨ indexOf() æ¹æ³æ£æ¥åå符串çå卿è
ä½ç½®ï¼æä½¿ç¨ substring() æ¹æ³æååå符串ã
å建å符串
å符串å¯ä»¥éè¿å符串åé¢éå建为åå§å¼ï¼ä¹å¯ä»¥éè¿ String() æé 彿°å建为å符串对象ï¼
const string1 = "A string primitive";
const string2 = 'Also a string primitive';
const string3 = `Yet another string primitive`;
const string4 = new String("A String object");
å符串åå§å¼ååç¬¦ä¸²å¯¹è±¡å ±äº«å¾å¤è¡ä¸ºï¼ä½ä¹æå ¶ä»éè¦çåºå«å注æäºé¡¹ã请åé ä¸é¢çâå符串åå§å¼åå符串对象âã
å符串åé¢éå¯ä»¥ä½¿ç¨åå¼å·æè åå¼å·æå®ï¼å®ä»¬çå¤çæ¹å¼ç¸åï¼æè 使ç¨åå¼å·å符 `ãæåä¸ç§å½¢å¼æå®äºæ¨¡æ¿å符串ï¼ä½ å¯ä»¥å¨å ¶ä¸æå ¥è¡¨è¾¾å¼ãæå ³å符串åé¢éè¯æ³çæ´å¤ä¿¡æ¯ï¼è¯·åè§è¯æ³è¯æ³ã
访é®å符
æä¸¤ç§æ¹å¼è®¿é®å符串ä¸çå个å符ãé¦å
æ¯ charAt() æ¹æ³ï¼
"cat".charAt(1); // gives value "a"
å¦ä¸ä¸ªæ¹å¼æ¯å°å符串è§ä¸ºç±»æ°ç»å¯¹è±¡ï¼å ¶ä¸å个å符对åºäºä¸ä¸ªæ°åç´¢å¼ï¼
"cat"[1]; // gives value "a"
å½ä½¿ç¨æ¹æ¬å·è¡¨ç¤ºæ³è¿è¡åç¬¦ä¸²è®¿é®æ¶ï¼å°è¯å é¤æä¸ºå
¶èµå¼çè¡ä¸ºå°ä¸æåãæ¶åç屿§æ¢ä¸å¯åï¼writableï¼ä¹ä¸å¯é
ç½®ï¼configurableï¼ï¼æ´å¤ç»èï¼è¯·åè§ Object.defineProperty()ï¼ã
æ¯è¾å符串
使ç¨å°äºå大äºè¿ç®ç¬¦æ¥æ¯è¾å符串ï¼
const a = "a";
const b = "b";
if (a < b) {
// true
console.log(`${a} å°äº ${b}`);
} else if (a > b) {
console.log(`${a} å¤§äº ${b}`);
} else {
console.log(`${a} å ${b} ç¸ç`);
}
注æï¼ææçæ¯è¾è¿ç®ç¬¦ï¼å
æ¬ === å ==ï¼å¨æ¯è¾å符串æ¶é½åºå大å°åãä¸åºå大å°åå°æ¯è¾å符串çå¸¸è§æ¹å¼æ¯å¨æ¯è¾å®ä»¬ä¹åå°å®ä»¬è½¬ä¸ºç¸åç大å°åï¼å¤§åæè
å°åï¼ã
function areEqualCaseInsensitive(str1, str2) {
return str1.toUpperCase() === str2.toUpperCase();
}
éè¿ toUpperCase() æ toLowerCase() è¿è¡è½¬æ¢ç鿩大夿¯ä»»æçï¼å¹¶ä¸å¨æ©å±å°æä¸åæ¯ä¹å¤æ¶ï¼ä¸¤è
é½ä¸æ¯å®å
¨å¯é çãä¾å¦ï¼å¾·è¯å°å忝 à å ss é½è¢« toUpperCase() 转æ¢ä¸º SSï¼èåè³å
¶åæ¯ Ä± ä¼è¢« toLowerCase() éè¯¯å°æ¥å为ä¸çäº Iï¼é¤éä½¿ç¨ toLocaleLowerCase("tr")ã
const areEqualInUpperCase = (str1, str2) =>
str1.toUpperCase() === str2.toUpperCase();
const areEqualInLowerCase = (str1, str2) =>
str1.toLowerCase() === str2.toLowerCase();
areEqualInUpperCase("Ã", "ss"); // trueï¼åºè¯¥ä¸º false
areEqualInLowerCase("ı", "I"); // falseï¼åºè¯¥ä¸º true
ç¨äºæµè¯ä¸åºå大å°åçç¸çæ§çæ¬å°åï¼locale-awareï¼ä¸å¯é çè§£å³æ¹æ¡æ¯ä½¿ç¨ Intl.Collator API æè
å符串ç localeCompare() æ¹æ³ââå®ä»¬å
±äº«ç¸åçæ¥å£ââsensitivity é项设置为 "accent" æ "base"ã
const areEqual = (str1, str2, locale = "en-US") =>
str1.localeCompare(str2, locale, { sensitivity: "accent" }) === 0;
areEqual("Ã", "ss", "de"); // false
areEqual("ı", "I", "tr"); // true
localeCompare() æ¹æ³ä½¿å符串æ¯è¾å¯ä»¥å strcmp() 彿°ä¸æ ·è¿è¡ââå®å
许以æ¬å°åçæ¹å¼å¯¹å符串è¿è¡æåºã
å符串åå§å¼åå符串对象
注æï¼JavaScript åºå String 对象ååå§å符串å¼ï¼Boolean å Number 乿¯å¦æ¤ï¼ã
å符串åé¢éï¼ä½¿ç¨åå¼å·æè
åå¼å·è¡¨ç¤ºï¼åä»éæé 彿°ä¸ä¸æä¸ç String è°ç¨è¿åçå符串ï¼å³å¨ä¸ä½¿ç¨ new å
³é®åçæ
åµä¸è°ç¨ï¼æ¯åå§å符串ãå¨éè¦è°ç¨åå§åç¬¦ä¸²çæ¹æ³æè¿è¡å±æ§æ¥æ¾çä¸ä¸æä¸ï¼JavaScript å°èªå¨å
è£
åå§å符串并å¨å
è£
对象ä¸è°ç¨æ¹æ³ææ§è¡å±æ§æ¥æ¾ã
const strPrim = "foo"; // åé¢éæ¯ä¸ä¸ªå符串åå§å¼
const strPrim2 = String(1); // 被强å¶è½¬æ¢ä¸ºå符串åå§å¼â1â
const strPrim3 = String(true); // 被强å¶è½¬æ¢ä¸ºå符串åå§å¼âtrueâ
const strObj = new String(strPrim); // ä½¿ç¨ `new` å
³é®åè°ç¨ `String` æé 彿°è¿åä¸ä¸ªå符串å
è£
对象ã
console.log(typeof strPrim); // "string"
console.log(typeof strPrim2); // "string"
console.log(typeof strPrim3); // "string"
console.log(typeof strObj); // "object"
è¦åï¼ä½ åºè¯¥åºæ¬ä¸ä¼å° String ä½ä¸ºæé 彿°ä½¿ç¨ã
ä½¿ç¨ eval() æ¶ï¼å符串åå§å¼å String 对象ä¹ä¼ç»åºä¸åçç»æãä¼ éç» eval çåå§å¼è¢«å½ä½æºä»£ç å¤çï¼è String 对象å被å½ä½å¯¹è±¡å¤çï¼è¿å对象ãä¾å¦ï¼
const s1 = "2 + 2"; // å建ä¸ä¸ªå符串åå§å¼
const s2 = new String("2 + 2"); // å建ä¸ä¸ª String 对象
console.log(eval(s1)); // è¿åæ°å 4
console.log(eval(s2)); // è¿åå符串â2 + 2â
å æ¤ï¼å½ä¸æ®µä»£ç 卿æä½¿ç¨å符串åå§å¼çæ¶åå´ä½¿ç¨äº String 对象æ¯ï¼å¯è½ä¼å¯¼è´æ§è¡å¤±è´¥ï¼è½ç¶ä¸è¬æ
åµä¸ï¼æä»¬å¹¶ä¸éè¦èèè¿æ ·çé®é¢ã
String 对象å§ç»å¯ä»¥ä½¿ç¨ valueOf() æ¹æ³å°å
¶è½¬æ¢ä¸ºå¯¹åºçåå§å¼ã
console.log(eval(s2.valueOf())); // è¿åæ°å 4
å符串强å¶è½¬æ¢
许å¤å
ç½®æä½é¦å
å°å®ä»¬çåæ°å¼ºå¶è½¬æ¢ä¸ºå符串ï¼è¿å°±æ¯ä¸ºä»ä¹ String 对象çè¡ä¸ºç±»ä¼¼äºå符串åå§å¼çåå ï¼ãè¿äºæä½å¯ä»¥æ»ç»ä¸ºä»¥ä¸å ç¹ï¼
- å符串æåæ ·è¿åã
undefinedè½¬æ¢æ"undefined"ãnullè½¬æ¢æ"null"ãtrueè½¬æ¢æ"true"ï¼falseè½¬æ¢æ"false"ã- 使ç¨ä¸
toString(10)ç¸åçç®æ³è½¬æ¢æ°åã - 使ç¨ä¸
toString(10)ç¸åçç®æ³è½¬æ¢ BigIntã - Symbol æåº
TypeErrorã - 对äºå¯¹è±¡ï¼é¦å
ï¼éè¿ä¾æ¬¡è°ç¨å
¶
[Symbol.toPrimitive]()ï¼hint 为"string"ï¼ãtoString()åvalueOf()æ¹æ³å°å ¶è½¬æ¢ä¸ºåå§å¼ãç¶åå°çæçåå§å¼è½¬æ¢ä¸ºä¸ä¸ªå符串ã
æå ç§æ¹æ³å¯ä»¥å¨ JavaScript ä¸å®ç°å ä¹ç¸åçææã
- 模æ¿å符串ï¼
`${x}`为åµå ¥çè¡¨è¾¾å¼æ§è¡ä¸é¢çå符串强å¶è½¬æ¢æ¥éª¤ã String()彿°ï¼String(x)使ç¨ç¸åçç®æ³å»è½¬æ¢xï¼åªæ¯ Symbol ä¸ä¼æåºTypeErrorï¼èæ¯è¿å"Symbol(description)"ï¼å ¶ä¸descriptionæ¯å¯¹ Symbol çæè¿°ã- 使ç¨
+è¿ç®ç¬¦ï¼"" + xå°å ¶æä½æ°å¼ºå¶è½¬ä¸ºåå§å¼ï¼è䏿¯å符串ï¼å¹¶ä¸å¯¹äºæäºå¯¹è±¡ï¼å ¶è¡ä¸ºä¸æ®éå符串强å¶è½¬æ¢å®å ¨ä¸åãæå ³æ´å¤ç»èï¼è¯·åè§å ¶åè页ã
æ ¹æ®ä½ 使ç¨çæ
åµï¼ä½ å¯è½æ³è¦ä½¿ç¨ `${x}`ï¼æ¨¡æå
ç½®è¡ä¸ºï¼æ String(x)ï¼å¤ç symbol å¼è䏿åºé误ï¼ï¼ä½ä½ ä¸åºè¯¥ä½¿ç¨ "" + xã
UTF-16 å符ãUnicode ç ä½ååç´ ç°
åç¬¦ä¸²åºæ¬ä¸è¡¨ç¤ºä¸º UTF-16 ç å
çåºåãå¨ UTF-16 ç¼ç ä¸ï¼æ¯ä¸ªç å
齿¯ 16 ä½é¿ãè¿æå³çæå¤æ 216 个æ 65536 个å¯è½çå符å¯è¡¨ç¤ºä¸ºå个 UTF-16 ç å
ã该å符éç§°ä¸ºåºæ¬å¤è¯è¨å¹³é¢ï¼BMPï¼ï¼å
嫿叏è§çå符ï¼å¦æä¸åæ¯ãå¸è
忝ã西éå°åæ¯ä»¥å许å¤ä¸äºåç¬¦ãæ¯ä¸ªç å
é½å¯ä»¥ç¨ä»¥ \u å¼å¤´ç 4 个åå
è¿å¶æ°ååå¨ä¸ä¸ªå符串ä¸ã
ç¶èï¼æ´ä¸ª Unicode åç¬¦éæ¯ 65536 大å¾å¤ãé¢å¤çå符以代ç对ï¼surrogate pairï¼çå½¢å¼åå¨å¨ UTF-16 ä¸ï¼ä»£ç对æ¯ä¸å¯¹ 16 ä½ç å
ï¼è¡¨ç¤ºä¸ä¸ªå个å符ã为äºé¿å
æ§ä¹ï¼é
对ç两个é¨åå¿
é¡»ä»äº 0xD800 å 0xDFFF ä¹é´ï¼å¹¶ä¸è¿äºç å
ä¸ç¨äºç¼ç åç å
å符ãï¼æ´åç¡®å°è¯´ï¼å导代çï¼ä¹ç§°ä¸ºé«ä½ä»£çï¼å
¶å¼å¨ 0xD800 å 0xDBFF ä¹é´ï¼å«ï¼ï¼èå尾代çï¼ä¹ç§°ä¸ºä½ä½ä»£çï¼å
¶å¼å¨ 0xDC00 å 0xDFFF ä¹é´ï¼å«ï¼ãï¼æ¯ä¸ª Unicode å符ç±ä¸ä¸ªæè
两个 UTF-16 ç å
ç»æï¼ä¹ç§°ä¸º Unicode ç ä½ï¼code pointï¼ãæ¯ä¸ª Unicode ç ä½é½å¯ä»¥ä½¿ç¨ \u{xxxxxx} åæä¸ä¸ªå符串ï¼å
¶ä¸ xxxxxx 表示 1â6 个åå
è¿å¶æ°åã
âåç¬ä»£ç项ï¼lone surrogateï¼âæ¯ææ»¡è¶³ä»¥ä¸æè¿°ä¹ä¸ç 16 ä½ç å ï¼
- å®å¨èå´
0xD800å°0xDBFFå ï¼å«ï¼ï¼å³ä¸ºå导代çï¼ï¼ä½å®æ¯å符串ä¸çæåä¸ä¸ªç å ï¼æè ä¸ä¸ä¸ªç å 䏿¯å尾代çã - å®å¨èå´
0xDC00å°0xDFFFå ï¼å«ï¼ï¼å³ä¸ºå尾代çï¼ï¼ä½å®æ¯å符串ä¸ç第ä¸ä¸ªç å ï¼æè åä¸ä¸ªç å 䏿¯å导代çã
åç¬ä»£ç项ä¸ä»£è¡¨ä»»ä½ Unicode å符ãå°½ç®¡å¤§å¤æ° JavaScript å
ç½®æ¹æ³é½å¯ä»¥æ£ç¡®å¤çå®ä»¬ï¼å 为å®ä»¬é½æ¯åºäº UTF-16 ç å
å·¥ä½çï¼ä½æ¯å¨ä¸å
¶ä»ç³»ç»äº¤äºæ¶ï¼åç¬ä»£ç项é叏䏿¯ææçå¼ãä¾å¦ï¼encodeURI() ä¼ä¸ºåç¬ä»£ç项æåº URIErrorï¼å 为 URI ç¼ç ä½¿ç¨ UTF-8 ç¼ç ï¼è UTF-8 没æä»»ä½ç¼ç åç¬ä»£çé¡¹çæ¹æ³ãä¸å
å«ä»»ä½åç¬ä»£ç项çå符串称为è§èçå符串ï¼å¹¶ä¸å¯ä»¥å®å
¨å°ä¸ä¸å¤ç UTF-16 ç彿°ä¸èµ·ä½¿ç¨ï¼ä¾å¦ encodeURI() æ TextEncoder ãä½ å¯ä»¥ä½¿ç¨ isWellFormed() æ¹æ³æ£æ¥å符串æ¯å¦è§èï¼æä½¿ç¨ toWellFormed() æ¹æ³æ¸
é¤åç¬ä»£ç项ã
é¤äº Unicode å符ä¹å¤ï¼è¿ææäº Unicode å符åºååºè§ä¸ºä¸ä¸ªè§è§åå
ï¼è¢«ç§°ä¸ºåç´ ç°ï¼grapheme clusterï¼ãæå¸¸è§çæ
嵿¯ emojiï¼è®¸å¤å
·æå¤ç§åä½ç emoji å®é
䏿¯ç±å¤ä¸ª emoji ç»æçï¼éå¸¸ç± <ZWJ>ï¼U+200Dï¼åç¬¦è¿æ¥ã
ä½ å¿
é¡»å°å¿è¿ä»£å符级å«ãä¾å¦ï¼split("") å°æç
§ UTF-16 ç å
åå²å¹¶å°ä»£ç对åå¼ãå符串索å¼ä¹æ¯æçæ¯ä¸ª UTF-16 ç å
çç´¢å¼ãå¦ä¸æ¹é¢ï¼[Symbol.iterator]() æ Unicode ç ä½è¿ä»£ãéååç´ ç°å°éè¦ä¸äºèªå®ä¹ä»£ç ã
"ð".split(""); // ['\ud83d', '\ude04']; splits into two lone surrogates
// "Backhand Index Pointing Right: Dark Skin Tone"
[..."ðð¿"]; // ['ð', 'ð¿']
// splits into the basic "Backhand Index Pointing Right" emoji and
// the "Dark skin tone" emoji
// "Family: Man, Boy"
[..."ð¨âð¦"]; // [ 'ð¨', 'â', 'ð¦' ]
// splits into the "Man" and "Boy" emoji, joined by a ZWJ
// The United Nations flag
[..."ðºð³"]; // [ 'ðº', 'ð³' ]
// splits into two "region indicator" letters "U" and "N".
// All flag emojis are formed by joining two region indicator letters
æé 彿°
String()-
å建ä¸ä¸ªæ°ç
String对象ãå®å¨ä½ä¸ºå½æ°è°ç¨æ¶æ§è¡ç±»å转æ¢ï¼è䏿¯ä½ä¸ºæé 彿°è°ç¨ï¼åè éå¸¸æ´æç¨ã
éææ¹æ³
String.fromCharCode()-
è¿åä½¿ç¨æå®ç Unicode å¼åºåå建çå符串ã
String.fromCodePoint()-
è¿åä½¿ç¨æå®çç ä½åºåå建çå符串ã
String.raw()-
è¿åä»åå§æ¨¡æ¿å符串å建çå符串ã
å®ä¾å±æ§
è¿äºå±æ§å¨ String.prototype ä¸å®ä¹ï¼ç±ææ String å®ä¾å
±äº«ã
String.prototype.constructor-
å建å®ä¾å¯¹è±¡çæé 彿°ã对äº
Stringå®ä¾ï¼åå§å¼æ¯Stringæé 彿°ã
è¿äºå±æ§æ¯æ¯ä¸ª String å®ä¾çèªæå±æ§ã
String.prototype.length-
åæ å符串ç
lengthãåªè¯»ã
å®ä¾æ¹æ³
String.prototype.at()-
è¿åæå®ç´¢å¼å¤çåç¬¦ï¼æ£å¥½æ¯ä¸ä¸ª UTF-16 ç å ï¼ãæ¥åè´æ´æ°ï¼ä»æåä¸ä¸ªå符串å符å¼å§åæ°ã
String.prototype.charAt()-
è¿åæå®
indexå¤çåç¬¦ï¼æ£å¥½æ¯ä¸ä¸ª UTF-16 ç å ï¼ã String.prototype.charCodeAt()-
è¿åä¸ä¸ªæ°åï¼å®æ¯ç»å®
indexå¤ç UTF-16 ç å å¼ã String.prototype.codePointAt()-
è¿åä¸ä¸ªéè´æ´æ°å¼ï¼å®æ¯ä»æå®ä½ç½®ï¼
posï¼å¼å§ç UTF-16 ç¼ç ç ä½çç ä½å¼ã String.prototype.concat()-
åå¹¶ä¸¤ä¸ªï¼ææ´å¤ï¼åç¬¦ä¸²çææ¬å¹¶è¿åä¸ä¸ªæ°å符串ã
String.prototype.endsWith()-
ç¡®å®å符串æ¯å¦ä»¥å符串
searchStringçå符ç»å°¾ã String.prototype.includes()-
ç¡®å®è°ç¨å符串æ¯å¦å å«
searchStringã String.prototype.indexOf()-
è¿åå¨è°ç¨
String对象ä¸ç¬¬ä¸æ¬¡åºç°çsearchValueçç´¢å¼ï¼å¦ææªæ¾å°åè¿å-1ã String.prototype.isWellFormed()-
è¿åä¸ä¸ªå¸å°å¼ï¼æç¤ºæ¤å符串æ¯å¦å å«ä»»ä½åç¬ä»£ç项ã
String.prototype.lastIndexOf()-
è¿åå¨è°ç¨
Stringå¯¹è±¡ä¸æå䏿¬¡åºç°çsearchValueçç´¢å¼ï¼å¦ææªæ¾å°åè¿å-1ã String.prototype.localeCompare()-
è¿åä¸ä¸ªæ°åï¼ç¨äºæç¤ºä¸ä¸ªåèå符串
compareStringæ¯å¦å¨æåºé¡ºåºå颿ä¹åæä¸ç»å®å符串ç¸åã String.prototype.match()-
ç¨äºå°æ£å表达å¼
regexpä¸å符串å¹é ã String.prototype.matchAll()-
è¿åææ
regexpçå¹é 项çè¿ä»£å¨ã String.prototype.normalize()-
è¿åè°ç¨å符串å¼ç Unicode è§èåå½¢å¼ã
String.prototype.padEnd()-
ç¨ç»å®åç¬¦ä¸²ä»æ«å°¾å¡«å å½åå符串并è¿åé¿åº¦ä¸º
targetLengthçæ°å符串ã String.prototype.padStart()-
ç¨ç»å®å符串ä»å¼å¤´å¡«å å½åå符串并è¿åé¿åº¦ä¸º
targetLengthçæ°å符串ã String.prototype.repeat()-
è¿åç±å¯¹è±¡çå ç´ éå¤
countæ¬¡ç»æçå符串ã String.prototype.replace()-
ç¨äºä½¿ç¨
replaceWithæ¿æ¢åºç°çsearchForãsearchForå¯ä»¥æ¯åç¬¦ä¸²ææ£å表达å¼ï¼replaceWithå¯ä»¥æ¯å符串æå½æ°ã String.prototype.replaceAll()-
ç¨äºä½¿ç¨
replaceWithæ¿æ¢ææåºç°çsearchForãsearchForå¯ä»¥æ¯åç¬¦ä¸²ææ£å表达å¼ï¼replaceWithå¯ä»¥æ¯å符串æå½æ°ã String.prototype.search()-
æç´¢æ£å表达å¼
regexpåè°ç¨å符串ä¹é´çå¹é 项ã String.prototype.slice()-
æåå符串çä¸é¨åå¹¶è¿åä¸ä¸ªæ°å符串ã
String.prototype.split()-
è¿åä¸ä¸ªç±å¨åºç°åå符串
sepæ¶æåè°ç¨çå符串ç¶åå¡«å çå符串æ°ç»ã String.prototype.startsWith()-
ç¡®å®è°ç¨å符串æ¯å¦ä»¥å符串
searchStringçå符å¼å¤´ã String.prototype.substring()-
è¿åä¸ä¸ªæ°å符串ï¼å ¶ä¸å 嫿¥èªï¼æä¹é´ï¼æå®ç´¢å¼ï¼æå¤ä¸ªç´¢å¼ï¼çè°ç¨å符串çå符ã
String.prototype.toLocaleLowerCase()-
å符串ä¸çå符å°è½¬æ¢ä¸ºå°åï¼åæ¶å°éå½åè¯è¨ç¯å¢ã
对äºå¤§å¤æ°è¯è¨ï¼è¿å°è¿åä¸
toLowerCase()ç¸åçç»æã String.prototype.toLocaleUpperCase( [locale, ...locales])-
å符串ä¸çå符å°è½¬æ¢ä¸ºå¤§åï¼åæ¶å°éå½åè¯è¨ç¯å¢ã
对äºå¤§å¤æ°è¯è¨ï¼è¿å°è¿åä¸
toUpperCase()ç¸åçç»æã String.prototype.toLowerCase()-
è¿å转æ¢ä¸ºå°åçè°ç¨å符串å¼ã
String.prototype.toString()-
è¿å表示æå®å¯¹è±¡çå符串ãéå
Object.prototype.toString()æ¹æ³ã String.prototype.toUpperCase()-
è¿å转æ¢ä¸ºå¤§åçè°ç¨å符串å¼ã
String.prototype.toWellFormed()-
è¿åä¸ä¸ªå符串ï¼å ¶ä¸å å«çææåç¬ä»£ç项齿¿æ¢ä¸º Unicode æ¿æ¢å符 U+FFFDã
String.prototype.trim()-
ä¿®åªå符串å¼å¤´åç»å°¾çç©ºæ ¼ã
String.prototype.trimEnd()-
ä¿®åªå符串ç»å°¾çç©ºæ ¼ã
String.prototype.trimStart()-
ä¿®åªå符串å¼å¤´çç©ºæ ¼ã
String.prototype.valueOf()-
è¿åæå®å¯¹è±¡çåå§å¼ãéå
Object.prototype.valueOf()æ¹æ³ã String.prototype[Symbol.iterator]()-
è¿åä¸ä¸ªæ°çè¿ä»£å¨å¯¹è±¡ï¼è¯¥å¯¹è±¡è¿ä»£ String å¼çç ä½ï¼å°æ¯ä¸ªç ä½ä½ä¸º String å¼è¿åã
HTML å è£ å¨æ¹æ³
è¦åï¼å·²å¼ç¨ã请é¿å 使ç¨è¿äºæ¹æ³ã
å®ä»¬çç¨éæéï¼å 为å®ä»¬åºäºé常å¤èç HTML æ åå¹¶ä¸ä»
æä¾å½åå¯ç¨ç HTML æ è®°å屿§çä¸ä¸ªåéãç°å¨å·²ç»ä¸ºå®ä»¬å建äºå·²å¼ç¨æéæ åçæ è®°ãæ¤å¤ï¼å®ä»¬å¨æ²¡æä»»ä½éªè¯ææ¸
ççæ
åµä¸è¿è¡ç®åçåç¬¦ä¸²è¿æ¥ï¼è¿ä½¿å¾å®ä»¬å¨ä½¿ç¨ innerHTML ç´æ¥æå
¥æ¶æä¸ºæ½å¨çå®å
¨å¨èã请æ¹ç¨ DOM APIï¼ä¾å¦ document.createElement()ã
String.prototype.anchor()-
<a name="name">ï¼è¶ ææ¬ç®æ ï¼ String.prototype.big()<big>String.prototype.blink()-
<blink> String.prototype.bold()<b>String.prototype.fixed()<tt>String.prototype.fontcolor()String.prototype.fontsize()String.prototype.italics()<i>String.prototype.link()-
<a href="url">ï¼é¾æ¥ URLï¼ String.prototype.small()<small>String.prototype.strike()<strike>String.prototype.sub()<sub>String.prototype.sup()<sup>
请注æï¼è¿äºæ¹æ³ä¸ä¼æ£æ¥å符串æ¬èº«æ¯å¦å å« HTML æ è®°ï¼å æ¤å¯è½ä¼åå»ºæ æç HTMLï¼
"</b>".bold(); // <b></b></b>
å®ä»¬æåçå¯ä¸è½¬ä¹æ¯å°å±æ§å¼ä¸ç "ï¼ä¾å¦ anchor()ãfontcolor()ãfontsize() å link()ï¼æ¿æ¢ä¸º "ã
"foo".anchor('"Hello"'); // <a name=""Hello"">foo</a>
示ä¾
>å符串转æ¢
å¯ä»¥ä½¿ç¨ String ä½ä¸º toString() æ´å¯é çä»£æ¿æ¹æ³ï¼å 为å®å¨ç¨äº null å undefined æ¶ä»ç¶ææãä¾å¦ï¼
const nullVar = null;
nullVar.toString(); // TypeError: nullVar is null
String(nullVar); // "null"
const undefinedVar = undefined;
undefinedVar.toString(); // TypeError: undefinedVar is undefined
String(undefinedVar); // "undefined"
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-string-objects> |
æµè§å¨å ¼å®¹æ§
åè§
- æ°åä¸å符串æå
RegExp