1. วิธีการทำซ้ำ: ทำซ้ำสตริง n ครั้ง ตัวอย่างเช่น: ทำซ้ำ ("Chaojidan", 2) -> Chaoschaojidanchaojidan
วิธีที่ 1:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นทำซ้ำ (str, n) {
return array.prototype.join.call ({ความยาว: n+1}, str);
// ดำเนินการวิธีการเข้าร่วมในบริบทของอาร์เรย์คลาส {ความยาว: n+1} และส่งผ่านใน str นั่นคือตัวเลือกในการใช้ STR เพื่อแยกอาร์เรย์คลาส อาร์เรย์คลาสนั้นว่างเปล่าดังนั้นจึงมี n strs ที่แยก N+1 "" และผลลัพธ์คือการเชื่อมต่อ N STR
-
วิธีที่ 2:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นทำซ้ำ (str, n) {
var s = str, total = "";
ในขณะที่ (n> 0) {
// สมมติว่า n คือ 5, หลังจาก n%2, เท่ากับ 1, ดังนั้นทั้งหมด = str.s = str n = 2. ลูปที่สอง: s = strstrstrstrstrstr, n = 1 การวนซ้ำครั้งที่สามทั้งหมด = strstrstrstrstrstrstrstrs, break, กระโดดออกจากลูป, ผลตอบแทนทั้งหมด, เพียงสตริงที่ str ซ้ำแล้วซ้ำอีก 5 ครั้ง
ถ้า (n%2 == 1) {
ทั้งหมด + = s; // นี่คือพลังของ 0 จาก 2 นั่นคือ 1. จำนวนเต็มบวกทั้งหมดสามารถรวมกันได้โดยใช้ 1, 2, 4, 8 .... ตัวอย่างเช่น: 3 = 1+2,5 = 1+4,7 = 1+2+4
-
ถ้า (n == 1) หยุดพัก;
s+= s; // พลังของ 2 ใช้ที่นี่ 2, 4, 8 ...
n = n >> 1;
-
ผลตอบแทนทั้งหมด;
-
2. ใช้ความยาวของไบต์ทั้งหมดของสตริง: str.charcodeat (i)> 255 และเพิ่มความยาวของ Str หนึ่งครั้งและมันก็โอเค
3. แปลงรูปแบบอูฐ: str.replace (/[-_] [^-_]/g, ฟังก์ชั่น (จับคู่) {return match.charat (1) .touppercase ();})
// -_ ใน [], /ไม่จำเป็นและ ^ ใน [] หมายถึงผกผันนั่นคือเมื่อพบ -a หรือ _a มันจะถูกแทนที่ด้วย (การจับคู่คือสตริงการจับคู่ปกติ _a จากนั้นใช้ A และใช้ประโยชน์)
4. แปลงเป็นรูปแบบขีดล่าง: str.replace (/([az/d]) ([az])/g, '$ 1_ $ 2') แทนที่ (//-/g, '_'). ToLowerCase ();
// การแทนที่ครั้งแรกตรงกับสตริง CA หรือ 4A และแทนที่ด้วย C_A หรือ 4_A $ 1 หมายถึงการแสดงออกของ subexpression ครั้งแรก การแทนที่ครั้งที่สองคือการใช้ _replace- เนื่องจาก - ไม่ได้อยู่ใน [] คุณต้องเพิ่ม /
5. ลบแท็ก HTML ในสตริง: str.replace (/<[^>]+>/g, '') แท็กสคริปต์จะถูกลบออก แต่สคริปต์ JS ในสคริปต์จะไม่ถูกลบออก
6. ลบแท็กสคริปต์และลบสคริปต์ JS ภายใน: str.replace (/<script [^>]*> (/s/s)*?) <// script>/img, '')
/ จำเป็นต้องใช้ / เพื่อป้องกันการหลบหนี
// (/s/s)*?) มีการจับคู่น้อยที่สุดเท่าที่จะเป็นไปได้ ตัวอย่างเช่น: <script> AAA </script> DDDD <Script> BBBB </script> จะจับคู่ <Script> AAA </SCRIPT> ก่อนแล้วจึงจับคู่ <Script> BBBB </SPRIST> หากไม่มีการเพิ่มมันจะเป็นการจับคู่โลภ ทั้งหมด <script> AAA </script> จะถูกจับคู่และสตริงยัติภังค์ทั้งหมดจะถูกลบออก
7. หลบหนีสตริงผ่าน HTML เพื่อให้ได้เนื้อหาที่เหมาะสมสำหรับการแสดงบนหน้า
str.replace (/&/g, '&'). แทนที่ (/</g, '<'). แทนที่ (// g, '>') แทนที่ (/"/g, '') แทนที่ (/'/g,' '');
8. เปลี่ยนอักขระเอนทิตี HTML ของสตริงเป็นอักขระที่เกี่ยวข้อง:
ตรงกันข้ามกับ 7 มีเพียงการแทนที่อีกหนึ่งครั้ง (/&#([/d]+);/g, ฟังก์ชั่น ($ 0, $ 1) {return string.fromCharcode (ParseInt ($ 1,10))}) // $ 1 เป็นการจับคู่แบบย่อยแรก
9.Trim: str.replace (/^/s+ |/s+ $/g, ''), IE หรือเบราว์เซอร์มาตรฐานต้นไม่ได้แสดงรายการอักขระจำนวนมากที่ว่างเปล่า AS/s ดังนั้นจึงมีข้อบกพร่อง อย่างไรก็ตามทำไมต้องเข้ากันได้กับเบราว์เซอร์ที่ถูกกำจัด?