JavaScript 中字元串和數組的截取辦法總結

来源:https://www.cnblogs.com/touryung/archive/2023/02/21/17141284.html
-Advertisement-
Play Games

字元串 substring 形式:substring(index1, index2) 不會改變原始字元串 將小的參數作為開始位置 start,大的作為結束位置 stop 包含 start,但不包含 stop 如果只給一個參數表示從它 start 截取到字元串結尾 如果某個參數為負,會先將負數變為 0 ...


字元串

substring

形式:substring(index1, index2)

  • 不會改變原始字元串
  • 將小的參數作為開始位置 start,大的作為結束位置 stop
  • 包含 start,但不包含 stop
  • 如果只給一個參數表示從它 start 截取到字元串結尾
  • 如果某個參數為負,會先將負數變為 0,並以它為 start
var str = "0123456789";
console.log(str.substring(1, 5)); // "1234"
console.log(str.substring(8, 4)); // "4567"
console.log(str.substring(1)); // "123456789"
console.log(str.substring(-2, 6)); // "012345"
console.log(str); // "0123456789"

substr

形式:substr(start, length)

  • 不會改變原始字元串
  • 如果缺 length,表示從 start 截取到字元串結尾
  • 如果 start 為負數,那麼 start = str.length + start
  • 如果 length 為負數或者 0,那麼返回空字元串
var str = "0123456789";
console.log(str.substr(1, 5)); // "12345"
console.log(str.substr(4)); // "456789"
console.log(str.substr(-3)); // "789"
console.log(str.substr(4, 0)); // ""
console.log(str.substr(4, -2)); // ""
console.log(str); // "0123456789"

數組

splice

形式:substr(start, length, *args)

  • 會改變原始數組
  • 從指定的索引開始刪除若幹元素,再從該位置添加若幹元素
var arr = [0,1,2,3,4,5,6,7,8,9];
console.log(arr.splice(2, 3, 12, 13)); // 返回刪除的元素 [2,3,4]
console.log(arr); // [0,1,12,13,5,6,7,8,9]
console.log(arr.splice(2, 3)); // [12,13,5]
console.log(arr); // [0,1,6,7,8,9]
console.log(arr.splice(2, 0, 22, 23)); // 返回[],沒有刪除任何元素
console.log(arr); // [0,1,22,23,6,7,8,9]

數組&字元串

slice

形式:slice(start, stop)

  • 不會改變原始數組/字元串
  • 包含 start,但不包含 stop
  • 如果只給一個參數表示從它 start 截取到字元串結尾
  • 如果 startstop 大(不會互換),或 startstop 相等,則截取為空
  • 如果 start 為負數,那麼 start = str.length + start
var str = "0123456789";
var arr = [0,1,2,3,4,5,6,7,8,9];
console.log(str.slice(1, 6)); // "12345"
console.log(arr.slice(1, 6)); // [1,2,3,4,5]
console.log(str.slice(2)); // "23456789"
console.log(arr.slice(2)); // [2,3,4,5,6,7,8,9]
console.log(str.slice(3,3)); // ""
console.log(arr.slice(3,3)); // []
console.log(str.slice(6,5)); // ""
console.log(arr.slice(6,5)); // []
console.log(str.slice(6,-1)); // "678"

參考文章鏈接


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ETL的架構 ETL架構的優勢: ETL相對於EL-T架構可以實現更為複雜的數據轉化邏輯 ETL採用單獨的硬體伺服器,可以分擔資料庫系統的負載 ETL與底層的資料庫數據存儲無關,可以保持所有的數據始終在資料庫當中,避免數據的載入和導出,從而保證效率,提高系統的可監控性。 ELT主要通過資料庫引擎來實 ...
  • 九宮格圖片佈局,長按直接拖拽圖片,長按時顯示底部刪除佈局,拖拽到刪除佈局處鬆手可刪除佈局,最後添加按鈕不可拖拽,基於 BaseQuickAdapter 基礎上實現 BaseQuickAdapter 確實很好用,簡化我們的實現代碼,它本身也集成了一套拖拽實現,不過目前無法完美的滿足上面的需求,需要做一 ...
  • 背景 最近,端內在做 webView 統一的時候,個性簽名中的 WebView 替換為 CustomWebView 之後,發現字體突然變小。 一開始不知道是什麼原因,通過二分法查找最近的提交,排查之後,發現是 SignatureWebView 的繼承關係從 WebView 修改為 CustomWeb ...
  • Map Object本質上是鍵值對的集合(Hash結構),但Object只能將字元串當做鍵,這就給Object帶來了很大的限制。 let data = {} let s = { name : '東方不敗' } data[s] = '西方求敗' // 如果鍵傳入非字元串的值,會自動為字元串 conso ...
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 最近公司出了一個新的功能模塊(如下圖),大提上可以描述為實現拍照完上傳圖片,拖動四方框拍照完成上傳功能,大體樣子如下圖。但是我找遍了 dcloud 插件市場,找到的插件都是移動背景圖片來實現裁剪的,跟京東的功能是相反的,沒辦法只能自己來實 ...
  • 前言 在 JavaScript 中,對象是一種非常常見的數據類型,幾乎每個程式員都會在日常工作中頻繁地使用對象。在本篇文章中,我們將深入瞭解 JavaScript 對象的一些基本概念和一些高級概念,這些概念對於我們正確理解對象在 JavaScript 中的行為非常重要。 對象的基本概念 在 Java ...
  • 前面使用了 11 篇文章分享基於 vue3 、Monorepo 的組件庫工程完整四件套(組件庫、文檔、example、cli)的開發、構建及組件庫的發佈。本文屬於這 11 篇文章的擴展 —— 如何發佈到 GitHub 上以及如何快速利用 GitHub 發佈組件庫文檔。這樣優雅哥的《組件庫框架》系列便 ...
  • 第一步:在gitee新建一個倉庫 寫上基本信息,點擊創建(不要勾選初始化),記住項目名稱 成功後的頁面中,把這個項目地址複製好 第二步VS code推送至gitee 把項目地址粘貼在輸入框,回車 再輸入剛纔新建的項目名稱,回車 此時第一次提交會有新彈窗界面,提示輸入gitee的用戶名和密碼,輸入後點 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...