前端正則表達式


在前端的開發中很少人會用到正則表達式(RegExp)去寫函數,其實正則表達式的效率會比一般的邏輯代碼要快很多,但是它也有一個特點就是不容易掌握。

正則引擎主要可以分為兩大類:一種是DFA,一種是NFA。

給定一個正則表達式和另一個字符串,我們可以達到如下的目的:
1. 給定的字符串是否符合正則表達式的過濾邏輯(稱作“匹配”);
2. 可以通過正則表達式,從字符串中獲取我們想要的特定部分。
 
  正則表達式的圖形化工具:http://zhoushengfe.com/rline.html
 

一個正常的正則表達式的語法應該是  

/正則表達式主體/修飾符

在字符串方面RegExp有兩個方法:

search()     用於檢索字符串中指定的子字符串,或檢索與RegExp相匹配的子字符串並返回子串的起始2位置。

replace()    用於字符串中一些字符替換另一些字符,或替換一個與正則表達式相匹配的子串。

match()      方法可在字符串內檢索指定的值,或找到一個或多個正則表達式的匹配。

test()          方法用於檢測一個字符串是否匹配某個模式,如果字符串中含有匹配的文本,則返回 true,否則返回 false。

exec()        方法用於檢索字符串中的正則表達式的匹配。該函數返回一個數組,其中存放匹配的結果。如果未找到匹配,則返回值為 null。

創建方式局我了解的話有兩種:

1、

var newregexp = new RegExp("//此處寫入表達式的式子","此處寫入g或i或gi或m,主要寫入是是否全局匹配");

2、

var newregexp = /  表達式  /gi

  

一些常見的標識符:

元字符:

\d	查找數字。
\s	查找空白字符。
\b	匹配單詞邊界。
\uxxxx	查找以十六進制數 xxxx 規定的 Unicode 字符。

表達式:

方括號用於查找某個范圍內的字符:

[abc]	查找方括號之間的任何字符。
[0-9]	查找任何從 0 至 9 的數字。
(x|y)	查找任何以 | 分隔的選項。

量詞:

n+	匹配任何包含至少一個 n 的字符串。
n*	匹配任何包含零個或多個 n 的字符串。
n?	匹配任何包含零個或一個 n 的字符串。

以下部分都是引用的:

來源:https://www.cnblogs.com/jay3352/p/5784050.html

正則表達式的() [] {}有不同的意思。

() 是為了提取匹配的字符串。表達式中有幾個()就有幾個相應的匹配字符串。

(\s*)表示連續空格的字符串。

[]是定義匹配的字符范圍。比如 [a-zA-Z0-9] 表示相應位置的字符要匹配英文字符和數字。[\s*]表示空格或者*號。

{}一般用來表示匹配的長度,比如 \s{3} 表示匹配三個空格,\s[1,3]表示匹配一到三個空格。 

(0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配數字(注意后面有 *,可以為空)[0-9]+ 匹配數字(注意后面有 +,不可以為空){1-9} 寫法錯誤。

[0-9]{0,9} 表示長度為 0 到 9 的數字字符串。

下面記錄了一些常用的正則表達式:

用戶名 /^[a-z0-9_-]{3,16}$/

密碼   /^[a-z0-9_-]{6,18}$/

acas12_aaa@sina.com.cn

電子郵箱   /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/

/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/

URL /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/

IP 地址 /((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/

/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/

HTML 標簽 /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/

刪除代碼\\注釋 (?<!http:|\S)//.*$

Unicode編碼中的漢字范圍 /^[\u2E80-\u9FFF]+$/

“^\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+)?))$"  //非正浮點數(負浮點數 + 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+)?$"  //浮點數

"^[A-Za-z]+$"  //由26個英文字母組成的字符串

"^[A-Z]+$"  //由26個英文字母的大寫組成的字符串

"^[a-z]+$"  //由26個英文字母的小寫組成的字符串

"^[A-Za-z0-9]+$"  //由數字和26個英文字母組成的字符串

"^\\w+$"  //由數字、26個英文字母或者下划線組成的字符串

"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"    //email地址

"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url

"^[A-Za-z0-9_]*$"。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM