正则表达式语法大全
前言:一般開發(fā)中都會(huì)接觸到正則表達(dá)式,作為一名合格的前端,也應(yīng)該了解一下正則表達(dá)式編寫原則,便于自己也能快速編寫想要的正則表達(dá)式。
1、作用(正則表達(dá)式是一種字符串匹配的模式)
數(shù)據(jù)驗(yàn)證:比如電話號(hào)碼、郵箱等
替換文本:快速找到特定文本,用于替換
快速提取字符串:基于匹配原則,快速從文檔中查找或提取子字符串
2、語法(普通字符+特殊字符)
普通字符
[abc] 匹配[...]的所有字符
[^abc] 取反,除了[...]的其他字符
[A-Z] 區(qū)間字母A到Z
. 匹配除(\n換行符 \r 回車符)的任何單個(gè)字符
\s \S 匹配所有,\s所有空白符,包括換行 \S非空白符,不包括換行
\w 匹配字母、數(shù)字、下劃線
特殊字符
$ 結(jié)尾位置 (匹配$字符----\$)
^ 開始位置(匹配$字符----\^)
() 子表達(dá)式開始和結(jié)束(匹配字符----\(? ?和? \))
* 匹配零次或多次(匹配字符----\*)
+ 匹配一次或多次(匹配字符----\+)
? 匹配零次或一次(匹配字符----\?)
| 兩項(xiàng)間的一個(gè)(匹配字符----\|)
限定符
{n} n為非負(fù)整數(shù),匹配n次
{n,} n為非負(fù)整數(shù),至少n次
{n,m} n為非負(fù)整數(shù),n<=m,最少n次,最多m次
修飾符
i 不區(qū)分大小寫
g 全局匹配
m 多行匹配
s 特殊字符遠(yuǎn)點(diǎn)包含換行符
3、常用場景
- 16進(jìn)制顏色? ??/^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/??? ?以#開始 ,6或3個(gè)字符(A-F、a-f、0-9)結(jié)尾
- 電話號(hào)碼??/^1(3\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\d|9[0-35-9])\d{8}$/? ? ??以1開頭,3可跟任一數(shù)字(\d),4可跟5-9,5可跟0-3或5-9 ,6后2567其中一個(gè),7后是0-8,8后任一數(shù)字,9后是0-3或3-5,其余8位是任意數(shù)字(\d{8})
- 身份證號(hào)? ?/^[1-9]\d{5}(19|20|21)\d{2}(0[1-9]|10|11|12)(0[1-9]|[1-2]\d|30|31)\d{3}[\dX]$/? ? ???第一位在0-9區(qū)間,后面是5位任意數(shù)字,4位年份(19、20、21開頭,后兩位任意),兩位代表月份(0開頭的1-9或者是10、11、12),兩位日期(01-31),三位順序碼,最后一位是校驗(yàn)碼,可數(shù)字可X
- 網(wǎng)址? ? ?/^((https?):)?\/\/([^?:/]+)(:(\d+))?(\/[^?]*)?(\?(.*))?/
- 郵箱? ??^[A-Za-z0-9-_\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$? ? ? ?名稱有漢字([\ue00-\u9fa5])、字母([a-zA-z])、數(shù)字、下劃線、中劃線,域名有數(shù)字、字母、下劃線、中劃線
4、使用方法
字符串.match(正則):返回符合的字符串,若不滿足返回null
字符串.search(正則):返回搜索到的位置,若非一個(gè)字符,則返回第一個(gè)字母的下標(biāo),若不匹配則返回-1
字符串.replace(正則,新的字符串):找到符合正則的內(nèi)容并替換
正則.test(字符串):在字符串中查找符合正則的內(nèi)容,滿足則返回true,反之為false
說明:new RegExp(規(guī)則).test(字符串)和上面寫法作用相同
總結(jié)
- 上一篇: 学成在线--18.新增课程(课程分类查询
- 下一篇: Django项目--静态首页的数据缓存(