前端正則表達式

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

正則引擎主要能夠分爲兩大類:一種是DFA,一種是NFA。html

給定一個正則表達式和另外一個字符串,咱們能夠達到以下的目的:
1. 給定的字符串是否符合正則表達式的過濾邏輯(稱做「匹配」);
2. 能夠經過正則表達式,從字符串中獲取咱們想要的特定部分。
 
  正則表達式的圖形化工具:http://zhoushengfe.com/rline.html
 

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

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

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

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

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

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

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

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

建立方式局我瞭解的話有兩種:url

一、

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

二、

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_]*$"。
相關文章
相關標籤/搜索