正規表示式在JS中的應用

2021-08-27 11:50:58 字數 2254 閱讀 8422

正規表示式作用:用來過濾指定規則的字元的一種方法,比較便捷。

在js中定義正規表示式中,正規表示式都是在//g中定義的,表示的是g表示的是全域性的。

雙斜槓//,就是使用字面量表示式的方式。兩者並沒有本質不同。就像宣告乙個陣列,我們既可以用new array() 又可以 使用一對中括號的方式。用字面量的方式有乙個方便之處在於。不需要轉移反斜槓字元了。因為在字串中兩個反斜槓代表乙個反斜槓。

正規表示式的語法:

注:如果要匹配字元的本身,需要使用轉移字元加被匹配的字元,如:\$;

非列印字元:

1.\cx: 匹配由x指明的控制字元。例如, \cm 匹配乙個 ctrl-m 或回車符。x 的值必須為 a-z 或 a-z 之一。否則,將 c 視為乙個原義的 'c' 字元;

2. \f: 匹配乙個換頁符;

3. \n: 匹配乙個換行符;

4. \r: 匹配乙個回車符;

5. \s: 匹配空白字元,如空格,製表符;

6. \s: 匹配任何非空白字元;

7. \t: 匹配乙個製表符;

8. \v: 匹配乙個垂直製表符;

9. \w 匹配字母或數字或下劃線或漢字 等價於 '[^a-za-z0-9_]'。 

10.\d 匹配數字 

特殊字元:

1. $: 匹配字串的結尾位置;

2. (): 標記乙個子表示式的開始和結束為止;

3. *: 匹配前面子表示式零次或多次;

4. +: 匹配前面子表示式一次或多次;

5. .: 匹配除換行符\n之外的任何單字元;

6. [: 匹配乙個中括號表示式的開始;

7. ?: 匹配前面子表示式零次或一次;

8. ^: 匹配輸入字串的開始;

9.  或  或  共6種。

其中*,+,?具體在特殊字元中已經介紹;

1. : n 是乙個非負整數。匹配確定的 n 次;

2. :n是乙個非負整數,至少匹配n次;

3. : (n<=m)至少匹配n次,至多匹配m次;

定位符:

定位符用來描述字串或單詞的邊界,^ 和 $ 分別指字串的開始與結束,\b 描述單詞的前或後邊界,\b 表示非單詞邊界。

正規表示式的一般使用:

匹配漢字:^[\u4e00-\u9fa5]$,其中^表示開始字元,$表示結束字元;

如:在js中測試乙個所輸入的字元裡面是否含有中文:

var rename = /[\u4e00-\u9fa5]/g表述的是將輸入字串中的中文找出來;

使用test()方法即可用來測試,是否符合條件;

如果rename.test(str)的值為true,則表示str中含有漢字,如果為false,則表述str沒有含有漢字;

若要驗證,該字串中是否只含有字母和數字,則需要使用,replace()和判斷過濾後的長度是否為0的方式來進行判斷;

如:var rename= /[a-za-z0-9]/g,表示的是只尋找字母和數字,每次只匹配乙個字母或者數字,然後進行下乙個字元;如果使用/[a-za-z0-9]+/g則表示每次可以匹配多個字母或者數字,只要是字母或者數字即可;

str = str.replace(rename,"");用空格代替正規表示式匹配的內容;

然後,判斷str的長度是否為零即可;

總結:目前,用正規表示式進行處理,是否符合條件的一種方式:就是,找出符合條件的,然後用""代替符合條件的,判斷剩餘的字串的長度是否為0來進行判斷所輸入的是否符合條件;該方式也可用於對於表示式的驗證,只是邏輯較為複雜,需要把邏輯理清之後,再下手,還有就是需要考慮去空格的操作;

正規表示式在VB中的應用

引用了microsoft vbscript regular expressions 5.5 後就可以宣告正則相關物件了。主要有三個物件 regexp matchcollection match。1.regexp 這是vb使用正規表示式匹配模式的主要物件了。其提供的屬性用於設定那些用來比較的傳遞給 r...

正規表示式在Mysql中的應用

mysql僅支援多數正規表示式實現的一小部分的子集 mysql select ename,deptno from emp where deptno regexp 20 ename deptno smith 20 jones 20 scott 20 adams 20 ford 20 5 rows in...

js中的正規表示式

d 非負整數 正整數 0 0 9 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d d 非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 正浮點數 d d 0 0 非正浮點數 負浮點數 ...