ใน JS มีสามชิ้นที่ใช้กันทั่วไป (), substr () และ substr () ในฟังก์ชันการสกัดกั้นอักขระ ให้ฉันแนะนำการใช้งานและความแตกต่างระหว่าง slice (), substr () และ substr () ฟังก์ชั่นเมื่อสกัดกั้นอักขระ
ฟังก์ชั่นสามฟังก์ชั่นสำหรับการใช้สาย: ชิ้น (เริ่มต้น, [สิ้นสุด]), substring (เริ่ม, [end]) และ substr (เริ่มต้น, [ความยาว])
คุณลักษณะที่เกี่ยวข้อง:
ชิ้น()
พารามิเตอร์แรกแสดงถึงตำแหน่งเริ่มต้นพารามิเตอร์ที่สองแสดงถึงตำแหน่งถัดไปของตำแหน่งสิ้นสุดและความยาวของสตริงที่สกัดกั้นคือความแตกต่างระหว่างพารามิเตอร์ที่สองและพารามิเตอร์แรก หากค่าพารามิเตอร์เป็นลบค่าจะถูกเพิ่มลงในความยาวสตริงและแปลงเป็นค่าบวก หากพารามิเตอร์แรกเท่ากับมากกว่าพารามิเตอร์ที่สองสตริงว่างจะถูกส่งคืน
substring ()
พารามิเตอร์แรกแสดงถึงตำแหน่งเริ่มต้นและพารามิเตอร์ที่สองแสดงถึงตำแหน่งถัดไปของตำแหน่งสิ้นสุด หากค่าพารามิเตอร์เป็นลบค่าจะถูกแปลงเป็น 0; ในบรรดาพารามิเตอร์ทั้งสองค่าที่เล็กกว่าจะถูกใช้เป็นตำแหน่งเริ่มต้นและความยาวของสตริงที่สกัดกั้นคือความแตกต่างระหว่างค่าที่ใหญ่กว่าและค่าที่เล็กกว่า
substr ()
พารามิเตอร์แรกแสดงถึงตำแหน่งเริ่มต้นและพารามิเตอร์ที่สองแสดงถึงความยาวที่สกัดกั้น
PS: สตริงทั้งหมดเริ่มตั้งแต่ 0
ตัวอย่าง:
<script type = "text/javascript"> var stmp = "rcinn.cn"; // ใช้การแจ้งเตือนพารามิเตอร์หนึ่งครั้ง (stmp.slice (3)); // จากตัวละครที่สี่สกัดกั้นตัวละครตัวสุดท้าย; return "nn.cn" การแจ้งเตือน (stmp.substring (3)); // จากตัวละครที่สี่สกัดกั้นตัวละครตัวสุดท้าย; ส่งคืน "nn.cn" // ใช้การแจ้งเตือนพารามิเตอร์สองตัว (stmp.slice (1,5)) // จากอักขระที่สองถึงอักขระที่ห้า; return "Cinn" Alert (stmp.substring (1,5)); // จากตัวละครที่สองถึงตัวละครที่ห้า; return "cinn" // ถ้าใช้พารามิเตอร์เดียวเท่านั้นและคือ 0 จากนั้นส่งคืนการแจ้งเตือนพารามิเตอร์ทั้งหมด (stmp.slice (0)); // ส่งคืนการแจ้งเตือนสตริงทั้งหมด (stmp.substring (0)); // ส่งคืนทั้งหมด // return การแจ้งเตือนอักขระตัวแรก (stm) "r" // ในตัวอย่างข้างต้นเราจะเห็นว่าการใช้งานของ slice () และ substring () เป็นค่าเดียวกัน // ค่าที่ส่งคืนจะเหมือนกัน แต่เมื่อพารามิเตอร์เป็นลบค่าการส่งคืนของพวกเขาจะแตกต่างกัน ดูตัวอย่างการแจ้งเตือนต่อไปนี้ (stmp.slice (2, -5)); // return "i" Alert (stmp.substring (2, -5)); // return "rc" // จากสองตัวอย่างข้างต้น ถูกส่งคืน); // substring (2, -5) จริง ๆ แล้วเป็น substring (2,0) และตัวเลขเชิงลบจะถูกแปลงเป็น 0, substring มักจะมีจำนวนน้อยกว่าเป็นตำแหน่งเริ่มต้น การแจ้งเตือน (stmp.substring (1,5)) // เริ่มจากอักขระที่สองไปยังอักขระที่ห้า; return "Cinn" Alert (stmp.substr (1,5)); // เริ่มจากอักขระที่สอง, การสกัดกั้น 5 อักขระ; return "cinn." </script>
ความแตกต่างระหว่างวิธีการย่อยและวิธีการย่อย
<script type = "text/javascript"> var str = "0123456789"; // การแจ้งเตือน (str.substring (0)); // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - การแจ้งเตือน (str.substring (-10)); // -------------- "0123456789" การแจ้งเตือน (str.substring (-12)); // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ - การแจ้งเตือน (str.substring (2,2)); // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - การแจ้งเตือน (str.substr (5)); // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ - การแจ้งเตือน (str.substr (0,10)); // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - การแจ้งเตือน (str.substr (-1,5)); // -------------- "01234" การแจ้งเตือน (str.substr (-1, -5)); // ------------------- "" </script>
ฟังก์ชั่น: แยก ()
ฟังก์ชั่น: ใช้ตัวคั่นที่ระบุเพื่อแยกสตริงเป็นอาร์เรย์
ตัวอย่าง:
str =” jpg | bmp | gif | ico | png "; arr = thestring.split (" | "); // arr เป็นอาร์เรย์ที่มีค่าอักขระ" jpg "," bmp "," gif "," ico "และ" png "ฟังก์ชั่น: John ()
ฟังก์ชั่น: ใช้ตัวคั่นที่คุณเลือกเพื่อรวมอาร์เรย์เข้ากับสตริง
ตัวอย่าง:
var delimitedString = myarray.join (ตัวคั่น); var mylist = อาร์เรย์ใหม่ ("jpg", "bmp", "gif", "ico", "png"); var portableList = mylist.join ("|");ฟังก์ชั่น: indexof ()
ฟังก์ชั่น: ส่งคืนตัวห้อยของอักขระตัวแรกที่ตรงกับสตริงย่อยในสตริง
var mystring =” javascript”; var w = mystring.indexof (” v”); w จะเป็น 2var x = mystring.indexof (” s”); x จะเป็น 4var y = mystring.indexof (” สคริปต์”); y จะเป็น 4var z = mystring.indexof (”
ฉันเห็นวิธีการง่าย ๆ ทางออนไลน์อีกวิธีหนึ่งรหัสมีดังนี้:
ฟังก์ชั่น func (s, n) {return s.replace (/([^x00-xff])/g, "$ 1a"). slice (0, n). replace (/([^x00-xff]) a/g, "$ 1"); -วิธีนี้ฉลาดมากและถูกต้องโดยทั่วไป ว่ากันว่า "โดยทั่วไป" เพราะเมื่อใช้สายย่อยที่มีความยาว 6 ไปทางซ้ายของ "การทดสอบตัวละครจีน 123 ตัว" มันจะกลับมา "123 ตัวละครจีน" ไม่ใช่ "123 จีน" แน่นอนว่านี่ไม่จำเป็นต้องเป็นปัญหาและในบางกรณีข้อกำหนดอาจเป็นเช่นนี้ วิธีนี้สามารถปรับปรุงได้ดังนี้:
ฟังก์ชั่น func (s, n) {return s.slice (0, n). replace (/([^x00-xff])/g, "$ 1a"). slice (0, n). replace (/([^x00-xff]) a/g, "$ 1"); -ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ฉันหวังว่ามันจะเป็นประโยชน์สำหรับทุกคนในการเรียนรู้การเขียนโปรแกรม JavaScript