主頁 > 企業開發 > WEB前端第二十五課——js字串

WEB前端第二十五課——js字串

2020-09-11 11:31:26 企業開發

1.字串嵌套

  字串可以嵌套使用

    在單引號包裹的字串內部,應該使用雙引號進行嵌套

    在雙引號包裹的字串內部,應該使用單引號進行嵌套

  在 json決議的時候字串需要單引號,因此推薦在各種情況都使用單引號的方式進行宣告

2.轉義字符,用特殊的符號來替代在字串中,容易引起歧義的內容

  \'   表示單引號

  \"  表示雙引號

  一個字串一般寫在一行內,不要分成多行

  如果必須分成多行,可以采用反斜杠 “\” 作為連接符,或者將其分成多個字串,通過拼接的方式進行組合

3.字串長度

  ① 測量字串長度:length屬性,

    語法格式:字串變數length

  ② 字符索引:[]方法,

    在字串后面接中括號,中括號內寫數字,能夠訪問字串中每一個字符

    代碼示例:

      var name=Franklin;

      var firstname=name[0];

    一次只能索引一個字符,如需索引多個,則使用加號(+)連接符多次索引

    索引從0開始,0表示第一個字符

  ③ 獲取指定位置字符:charAt()方法和 charCodeAt()方法,

    兩種方法均是獲取指定位置字符,不同的是charAt()回傳的是具體的字符,而charCodeAt()回傳的是字符對應的Unicode編碼

    代碼示例;

      var name=Franklin;

      var cat=name.charAt(0);

      var ccat=name.charCodeAt(0);

    var cat結果為“F”,而var ccat結果為“70”

    兩個重要的字符編碼,A——65,a——97,其他字母累加即可

    如果index是負數,或者大于等于字串長度的值,則 charCodeAt()回傳的值為 NaN,

  ④ 字串連接:concat()方法,

    將兩個或多個字串拼接起來,組成一個新的字串,用法與加號(+)有相同之處

    語法格式:var str=str1.concat(str2,str3,……);

4.轉義字符

  反斜杠 “\” 被稱作轉義字符

  轉義字符可以將特殊字符轉換為字串字符,可以用于轉義撇號、換行、引號等特殊字符

  常見轉義符號:\' (單引號)、\" (雙引號)、\\ (反斜杠)、\n (換行)、\r (回車)、\t (制表符)、\b (退格)、\f (換頁符)

  \n、\r、<br/>區別

    \n,英文是 new line,表示使游標下移一格

    \r,英文是carriage return,表示使游標移到行首

    <br/>是瀏覽器換行

    總結:\n \r表示源代碼換行(瀏覽器不解釋),<br/>表示瀏覽器文字換行

5.字串物件

  JavaScript中提供了另外一種字串的宣告方式,叫作字串物件,使用 new關鍵字將字串定義為一個物件

  語法示例:var newString=new  String('Franklin');

    var str1=‘frank’;  //(typeof  str1)回傳值為 String

    var str2=new String(‘frank’);  //(typeof  str2)回傳值為Object,String首字母必須大寫

  通常不要創建 string物件,它會拖慢程式執行速度,并可能產生其他副作用

  字串和字串物件雖然效果相似,但它們是完全不同型別的資料

 6. 字串屬性及方法

  substring,截取字串

  substr,截取字串(長度)

  slice,截取字串

  indexOf,回傳當前查找字串的位置,如果沒有回傳-1

  lastindexOf,倒過來查找

  trim,去掉字串兩端的空格

  toUpperCase和toLowerCase,大小寫轉換

  localeCompare,比較兩個字串大小

  match,回傳一個指定字串的陣列

  search,回傳位置

  replace,替換字串

  split,字串切割,回傳陣列

7.substring截取字串

  通過指定開始和結束位置,對字串變數進行截取

  語法:str . substring(index1, index2);

  第一個引數表示截取的開始位置(包含index1),第二個引數表示結束位置(不包含index2)

  結束位置理論上應該大于開始位置,如果第一個引數值大于第二個引數值,substring方法會自動調換兩個引數的位置

8.substr截取字串

  通過指定開始截取的位置和截取的長度,對字串變數進行截取

  語法:str . substr(num1, num2);

  substr方法的語法格式與substring方法很相似,但表達含義和用法差別很大,substr兩個引數不能互換

9.slice截取字串

  通過指定開始和結束位置,對字串變數進行截取

  語法:str . slice(num1,num2);

  slice的兩個引數不能互相調換位置,如果第一個引數大于第二個引數,則回傳結果為一個空字串

 substring、substr、slice三個方法的第一個引數都表示截取開始的位置,如果省略第二個引數,那么這三種方法都表示從開始位置截取一直到字串本身結束

10.indexOf

  查找一個字符或字串在另一個字串中的位置

  語法:str . indexOf(‘sub’);

  字串的查找是從源字串開始處進行向后查找,且只針對首次出現的位置查找,回傳值為所在位置的索引,如果查找失敗則回傳 -1

11.lastindexOf

  查找一個字符或字串在另一個字串中的位置

  語法:str . lastindexOf(‘subStr’);

  字串的查找是從原字串的末尾處進行向前查找,如果查找失敗則回傳 -1

12.indexOf和 lastindexOf還可以接受第二個引數,用于表示開始查找的位置

  對于indexOf而言,表示從這個位置開始向后查找,語法:str. indexOf('subStr', num); 

  對于lastindexOf而言,表示從這個位置開始向前查找,語法:str.lastindexOf('subStr', num);

13.replace

  將查找到的首次出現的字串替換成目標字串,如果查找失敗則不發生替換,而是將原字串完整拷貝出來

  語法:str . replace('oldStr','newStr');

  replace方法并不會對原本字串產生任何影響,而是生成一個新的字串

  replace方法只能替換首次出現的字串,如果要替換多個, 需要依賴于正則運算式

14.trim

  去掉字串兩端多余的空格,中間部位的空格不受影響,語法:str . trim();

  trim()方法并不會對原本的字串產生任何影響,而是生成一個新的字串

15.toUpperCase

  將字串中的英文字母全部轉換成大寫字母

  語法:str .toUpperCase();

16.同LowerCase

  將字串中的英文字母全部轉換成小寫字母

  語法:str .toLowerCase();

17.localeCompare

  根據本地的排序規則對兩個字串進行大小比較

  語法:str1 .localCompare(str2);

  如果計算結果大于0則表示 str1大于 str2,如果計算結果等于0則表示 str1等于 str2,如果計算結果小于0則表示 str1小于 str2

  ECMAscript標準沒有規定如何進行本地特定的比較操作,只規定了該函式采用底層作業系統提供的排序規則,自定義比較方法也是可以的

18.match

  查找原字串是否匹配某個子字串,回傳結果是匹配的子字串資訊陣列,如果沒有找到則回傳null

  回傳的陣列內容包含:尋找的子字串、子字串位置索引、原字串

  語法:str . match('substr');

  示例:var string= 'hello world!';

     string.match('hello');  //結果:['hello', index:0, input:'hello world!']

  match方法只能查找到匹配的第一個字串,但通過正則運算式的方式可以查找到所有匹配的字串

19.search

  與match方法相似,都是查找子字串在指定字串的位置資訊

  不同的是search方法回傳的結果為下標(索引),如果沒有找到匹配字串則回傳 -1

  語法:str . search('substr');

  示例:var string= 'hello world!';

     string.search('hello');  //結果:0

20.split

  根據指定的符號將字串進行分割,分割后的所有子字串整合成為一個陣列回傳

  如果無法分割,則只回傳一個元素——字串本身

  語法:str . split('symbol');

  示例:var string = ‘see you soon!’

     string . split(' ');    //回傳結果:[‘see’,‘you’,‘soon’]

  分隔符號不同,回傳的陣列就可能不同

21.JavaScript字符集

  js使用的是Unicode字符集,在JavaScript引擎內部,所有字符都用Unicode表示

  js不僅以Unicode存盤字符,還允許在程式中直接使用Unicode編碼表示字符

  決議代碼時,js會自動識別一個字符是字面形式表示,還是Unicode形式表示,輸出給用的時候,所有字符都會轉成字面形式

  示例,var eg = '\u00A9';

     console.log(eg); //©

    \n(換行符),\u000A

    \'(單引號),\u0027

    \"(雙引號),\u0022

    \\(反斜杠),\u005C

22.字串Base64編碼

  Base64本身是一種加密方式,可以將任意字符轉換成可列印字符,通常主要是為了簡化程式處理,不出現特殊字符,使用這種編碼方法

  JavaScript中為字串提供了兩種有關Base64編碼的方法:

    btoa()  字串或二進制值轉換為Base64編碼(加密)

    atob()  Base64編碼轉換為原來的編碼(解密)

  示例:

    var string = 'frank';

    console.log(btoa(string));  //ZnJhbms=

    var string = 'ZnJhbms=';

    console.log(atob(string));  //frank

  這兩種方法不適合非ASCII碼的字符,但可以通過中間插入一個轉碼環節的方式,使用這兩種方法將非ASCII碼字符與Base64進行轉換

  這兩種方法限于決議非中文代碼,決議中文(包括英文)的方法為:encodeURIComponent() (加密)、decodeURIcomponent() (解密)

  可以通過將中文加密后,再進行Base64加密,解密時操作順序相反

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/5462.html

標籤:JavaScript

上一篇:代碼之旅:基礎規范

下一篇:快速搭建一個Vue-cli專案(簡單到爆炸)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • IEEE1588PTP在數字化變電站時鐘同步方面的應用

    IEEE1588ptp在數字化變電站時鐘同步方面的應用 京準電子科技官微——ahjzsz 一、電力系統時間同步基本概況 隨著對IEC 61850標準研究的不斷深入,國內外學者提出基于IEC61850通信標準體系建設數字化變電站的發展思路。數字化變電站與常規變電站的顯著區別在于程序層傳統的電流/電壓互 ......

    uj5u.com 2020-09-10 03:51:52 more
  • HTTP request smuggling CL.TE

    CL.TE 簡介 前端通過Content-Length處理請求,通過反向代理或者負載均衡將請求轉發到后端,后端Transfer-Encoding優先級較高,以TE處理請求造成安全問題。 檢測 發送如下資料包 POST / HTTP/1.1 Host: ac391f7e1e9af821806e890 ......

    uj5u.com 2020-09-10 03:52:11 more
  • 網路滲透資料大全單——漏洞庫篇

    網路滲透資料大全單——漏洞庫篇漏洞庫 NVD ——美國國家漏洞庫 →http://nvd.nist.gov/。 CERT ——美國國家應急回應中心 →https://www.us-cert.gov/ OSVDB ——開源漏洞庫 →http://osvdb.org Bugtraq ——賽門鐵克 →ht ......

    uj5u.com 2020-09-10 03:52:15 more
  • 京準講述NTP時鐘服務器應用及原理

    京準講述NTP時鐘服務器應用及原理京準講述NTP時鐘服務器應用及原理 安徽京準電子科技官微——ahjzsz 北斗授時原理 授時是指接識訓通過某種方式獲得本地時間與北斗標準時間的鐘差,然后調整本地時鐘使時差控制在一定的精度范圍內。 衛星導航系統通常由三部分組成:導航授時衛星、地面檢測校正維護系統和用戶 ......

    uj5u.com 2020-09-10 03:52:25 more
  • 利用北斗衛星系統設計NTP網路時間服務器

    利用北斗衛星系統設計NTP網路時間服務器 利用北斗衛星系統設計NTP網路時間服務器 安徽京準電子科技官微——ahjzsz 概述 NTP網路時間服務器是一款支持NTP和SNTP網路時間同步協議,高精度、大容量、高品質的高科技時鐘產品。 NTP網路時間服務器設備采用冗余架構設計,高精度時鐘直接來源于北斗 ......

    uj5u.com 2020-09-10 03:52:35 more
  • 詳細解讀電力系統各種對時方式

    詳細解讀電力系統各種對時方式 詳細解讀電力系統各種對時方式 安徽京準電子科技官微——ahjzsz,更多資料請添加VX 衛星同步時鐘是我京準公司開發研制的應用衛星授時時技術的標準時間顯示和發送的裝置,該裝置以M國全球定位系統(GLOBAL POSITIONING SYSTEM,縮寫為GPS)或者我國北 ......

    uj5u.com 2020-09-10 03:52:45 more
  • 如何保證外包團隊接入企業內網安全

    不管企業規模的大小,只要企業想省錢,那么企業的某些服務就一定會采用外包的形式,然而看似美好又經濟的策略,其實也有不好的一面。下面我通過安全的角度來聊聊使用外包團的安全隱患問題。 先看看什么服務會使用外包的,最常見的就是話務/客服這種需要大量重復性、無技術性的服務,或者是一些銷售外包、特殊的職能外包等 ......

    uj5u.com 2020-09-10 03:52:57 more
  • PHP漏洞之【整型數字型SQL注入】

    0x01 什么是SQL注入 SQL是一種注入攻擊,通過前端帶入后端資料庫進行惡意的SQL陳述句查詢。 0x02 SQL整型注入原理 SQL注入一般發生在動態網站URL地址里,當然也會發生在其它地發,如登錄框等等也會存在注入,只要是和資料庫打交道的地方都有可能存在。 如這里http://192.168. ......

    uj5u.com 2020-09-10 03:55:40 more
  • [GXYCTF2019]禁止套娃

    git泄露獲取原始碼 使用GET傳參,引數為exp 經過三層過濾執行 第一層過濾偽協議,第二層過濾帶引數的函式,第三層過濾一些函式 preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'] (?R)參考當前正則運算式,相當于匹配函式里的引數 因此傳遞 ......

    uj5u.com 2020-09-10 03:56:07 more
  • 等保2.0實施流程

    流程 結論 ......

    uj5u.com 2020-09-10 03:56:16 more
最新发布
  • 使用Django Rest framework搭建Blog

    在前面的Blog例子中我們使用的是GraphQL, 雖然GraphQL的使用處于上升趨勢,但是Rest API還是使用的更廣泛一些. 所以還是決定回到傳統的rest api framework上來, Django rest framework的官網上給了一個很好用的QuickStart, 我參考Qu ......

    uj5u.com 2023-04-20 08:17:54 more
  • 記錄-new Date() 我忍你很久了!

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 大家平時在開發的時候有沒被new Date()折磨過?就是它的諸多怪異的設定讓你每每用的時候,都可能不小心踩坑。造成程式意外出錯,卻一下子找不到問題出處,那叫一個煩透了…… 下面,我就列舉它的“四宗罪”及應用思考 可惡的四宗罪 1. Sa ......

    uj5u.com 2023-04-20 08:17:47 more
  • 使用Vue.js實作文字跑馬燈效果

    實作文字跑馬燈效果,首先用到 substring()截取 和 setInterval計時器 clearInterval()清除計時器 效果如下: 實作代碼如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta ......

    uj5u.com 2023-04-20 08:12:31 more
  • JavaScript 運算子

    JavaScript 運算子/運算子 在 JavaScript 中,有一些運算子可以使代碼更簡潔、易讀和高效。以下是一些常見的運算子: 1、可選鏈運算子(optional chaining operator) ?.是可選鏈運算子(optional chaining operator)。?. 可選鏈操 ......

    uj5u.com 2023-04-20 08:02:25 more
  • CSS—相對單位rem

    一、概述 rem是一個相對長度單位,它的單位長度取決于根標簽html的字體尺寸。rem即root em的意思,中文翻譯為根em。瀏覽器的文本尺寸一般默認為16px,即默認情況下: 1rem = 16px rem布局原理:根據CSS媒體查詢功能,更改根標簽的字體尺寸,實作rem單位隨螢屏尺寸的變化,如 ......

    uj5u.com 2023-04-20 08:02:21 more
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 08:01:50 more
  • 如何在 vue3 中使用 jsx/tsx?

    我們都知道,通常情況下我們使用 vue 大多都是用的 SFC(Signle File Component)單檔案組件模式,即一個組件就是一個檔案,但其實 Vue 也是支持使用 JSX 來撰寫組件的。這里不討論 SFC 和 JSX 的好壞,這個仁者見仁智者見智。本篇文章旨在帶領大家快速了解和使用 Vu ......

    uj5u.com 2023-04-20 08:01:37 more
  • 【Vue2.x原始碼系列06】計算屬性computed原理

    本章目標:計算屬性是如何實作的?計算屬性快取原理以及洋蔥模型的應用?在初始化Vue實體時,我們會給每個計算屬性都創建一個對應watcher,我們稱之為計算屬性watcher ......

    uj5u.com 2023-04-20 08:01:31 more
  • http1.1與http2.0

    一、http是什么 通俗來講,http就是計算機通過網路進行通信的規則,是一個基于請求與回應,無狀態的,應用層協議。常用于TCP/IP協議傳輸資料。目前任何終端之間任何一種通信方式都必須按Http協議進行,否則無法連接。tcp(三次握手,四次揮手)。 請求與回應:客戶端請求、服務端回應資料。 無狀態 ......

    uj5u.com 2023-04-20 08:01:10 more
  • http1.1與http2.0

    一、http是什么 通俗來講,http就是計算機通過網路進行通信的規則,是一個基于請求與回應,無狀態的,應用層協議。常用于TCP/IP協議傳輸資料。目前任何終端之間任何一種通信方式都必須按Http協議進行,否則無法連接。tcp(三次握手,四次揮手)。 請求與回應:客戶端請求、服務端回應資料。 無狀態 ......

    uj5u.com 2023-04-20 08:00:32 more