選單

學習筆記:JS字串操作

知識點總結:謝政軒

這是我們前幾天學習的字串,下面是我對字串的瞭解,以及應用。

目錄:

1.

初步瞭解字串,以及字串的一系列解釋

2.

字串方法及解釋

3.

字串的應用

一.首先我們大致瞭解一下字串:

字串主要用於程式設計,概念說明、函式解釋。字串或串(String)是由數字、字母、下劃線組成的一串字元。一般記為s=“a1a2···an”(n>=0)。它是程式語言中表示文字的資料型別。在程式設計中,字串(string)為符號或數值的一個連續序列,如符號串(一串字元)或二進位制數字串(一串二進位制數字)。

(1)

.

字串的特點:

對於String來說,有一句經典的說法—->一旦建立,內容無法改變。

為什麼呢?,其實很簡單,因為String類本身沒有提供,沒有向外提供改變其內容的方法,所以無法改變(但是String提供了很多操作方法),所以,就算你改變了String的內容,那也是更改了物件的記憶體指向了,物件的棧引用指向了新的內容的堆地址。

Stringstr=“hello”;str=“world”;

分析一下記憶體過程:

可以發現,這是一個簡單的常量;

首先,棧中建立一個str,然後常量池中去尋找是否有一個內容是hello,如果有直接將str指向這個內容,如果沒有則在常量池建立這個內容,並將str指向這個內容。

然後,將str的內容改為了world,(還是一樣會去常量池去尋找有沒有world這樣一個字串,如果有直接使用,如果沒有再進行建立),這個時候,

str引用先打斷指向hello,重新指向world。

舉個例子:

學習筆記:JS字串操作

(2)

字串的長度:

儘管形式字串可以有任意(但有限)的長度,實際語言的字串的長度經常被限制到一個人工極大值。一般的說,有兩種型別的字串資料型別: “定長字串”,它有固定的極大長度並且不管是否達到了這個極大值都使用同樣數量的記憶體;和“變長字串”,它的長度不是固定的並且依賴於實際的大小使用可變數量的記憶體。在現代程式語言中的多數字符串是變長字串。儘管叫這個名字,所有變長字串還是在長度上有個極限,一般的說這個極限只依賴於可獲得的記憶體的數量。

(3)

字串的操作:

一個簡單的字串操作是“連線”:也就是說先寫一個字串S,隨後在後面再寫一個T得到ST這樣一個過程。其它的常見操作包括在一個長字串中搜索一個子串,排列一組字串以及分析一個字串。因為存在如此多的字串應用方式,所以相應地有許多權衡了不同應用的相關演算法。高階的字串演算法通常使用包括後向樹和有限狀態機在內的複雜機制和資料結構。

(4)

字串的表示法:

一種常用的表示法是使用一個字元程式碼的陣列,每個字元佔用一個位元組(如在ASCII程式碼中)或兩個位元組(如在unicode中)。它的長度可以使用一個結束符(一般是NUL,ASCII程式碼是,在C程式語言中使用這種方法)。或者在前面加入一個整數值來表示它的長度(在Pascal語言中使用這種方法)。

這是一個用NUL結束的字串的例子,它用10個byte儲存,用ASCII表示法:

F R A N K NUL k e f w

46 52 41 4E 4B 00 6B 66 66 77

上面的字串的長度為5個字元,但注意它佔用6個位元組。結束符後的字元沒有任何意義。

這是相同的Pascal字串:

length F R A N K k e f w

05 46 52 41 4E 4B 6B 66 66 77

當然,可能還有其它的表示法。使用樹和列表可以使得一些字串操作(如插入和刪除)更高效。

二.接下來我們瞭解一下字串的方法及解釋:

1。連線運算concat(s1,s2,s3…sn)相當於s1+s2+s3+…+sn。

例:concat(‘11’,‘aa’)=‘11aa’;

2。求子串。Copy(s,I,I)從字串s中擷取第I個字元開始後的長度為l的子串。

例:copy(‘abdag’,2,3)=‘bda’

3。刪除子串。過程Delete(s,I,l)從字串s中刪除第I個字元開始後的長度為l的子串。

例:s:=‘abcde’;delete(s,2,3);結果s:=‘ae’

4。插入子串。過程Insert(s1,s2,I)把s1插入到s2的第I個位置

例:s:=abc;insert(‘12’,s,2);結果s:=‘a12bc’

5。求字串長度length(s)例:length(‘12abc’)=5

在ASP中求字串長度用len(s)例: len(“abc12”)=5

6。搜尋子串的位置pos(s1,s2)如果s1是s2的子串,則返回s1的第一個字元在s2中的位置,若不是子串,則返回0。

例:pos(‘ab’,‘12abcd’)=3

7。字元的大寫轉換。Upcase(ch)求字元ch的大寫體。

例:upcase(‘a’)=‘A’

8。數值轉換為數串。過程Str(x,s)把數值x化為數串s。

例:str(12345,s);結果s=‘12345’

9。數串轉換為數值。過程val(s,x,I)把數串s轉化為數值x,如果成功則I=0,不成功則I為無效字元的序數,第三個引數也可不傳

例:val(‘1234’,x,I);結果x:=1234

三.

接下來就是字串的應用了

下面是我用正則表示式進行了一系列的判斷,以及基礎的html,css,js操作做出來的一個登陸頁面。

學習筆記:JS字串操作

當你點選框的時候如果沒有填寫內容那麼他會提示你不能為空。

學習筆記:JS字串操作

當你輸入錯誤的時候下面桃心就是紅色的,在這裡我做到是一個特效,其實不需要這麼麻煩的。當它為綠色的時候就正確了,可以登入了。

學習筆記:JS字串操作

密碼做的是一個仿京東的一個特效,當它是親嘴的時候密碼就是可見的,當親嘴帶桃心的時候就是不可見的,這個功能會隱藏使用者的隱私。

學習筆記:JS字串操作

學習筆記:JS字串操作

下面就是驗證碼了,當點選的時候會生成一個a-z0-9的一個隨機6位數驗證碼。

學習筆記:JS字串操作