正則表達式蠻強大的哈,廢話不多說, 直接上整理內容 一:基本匹配符: \d 匹配數字 eg:'5\d0' >'580' \w 匹配字母或數字 eg:'\d\w\w' >'8zh' . 匹配除換行符外的任何一個字元任意字元 eg:'zh.' >'zh&' \s 空白符(tab)或空格 二:匹配字元長度 ...
正則表達式蠻強大的哈,廢話不多說, 直接上整理內容
一:基本匹配符:
\d 匹配數字 eg:'5\d0'------->'580'
\w 匹配字母或數字 eg:'\d\w\w'--------->'8zh'
. 匹配除換行符外的任何一個字元任意字元 eg:'zh.'----------->'zh&'
\s 空白符(tab)或空格
二:匹配字元長度:
* 表示任意個字元(包括0個)
+ 表示至少一個字元
? 表示0個或1個字元
{n} 表示n個字元
{n,m}表示n-m個字元
********************************************************
練習題一道:\d{3}\s+\d{3,8};
答案在這裡2333: 匹配的是由3個數字緊接至少一個空格或空白符緊接3到8個數字;
********************************************************
<<<<< 補充一句: 像'-'這樣的特殊字元需要轉譯才能匹配哦~ like this '\-' >>>>>
三: 但是如果單純是這樣的匹配的話, 未免有點簡單點了, 面對複雜的匹配我們還需要更精準的匹配方法:
[0-9a-zA-Z\_] 可以匹配一個數字或者字母或者下劃線, 親測: '0', 'a', 'Z', '_'都能匹配, 所以說介種表達方式是可或可與的組成方式;
[0-9a-zA-Z\_]+ 可以匹配至少由一個數字或字母或下劃線組成的字元串;
[a-zA-Z\_][0-9a-zA-Z\_]* 可以匹配由字母或下劃線開頭, 後面緊接任意一個數字或字母或下劃線;
[a-zA-Z\_][0-9a-zA-Z\_]{0,19} 限制長度在1到20, 為什麼是1到20呢, 開頭占一位後面緊接的字元串限制在0到19, 所以最大長度限制在20啦;
A|B 可以匹配A或B. [J|j]aina可以匹配jaina或Jaina;
^ 表示必須以某字元開頭, eg: ^\d 表示必須以數字開頭的
$ 表示必須以某字元結尾 , eg: \d$ 表示必須以數字結尾, 註意它們倆的表達方式^是放在字元前面的, $是放在字元後面的
四: js中的驗證方法:
var reg='\d{3}\s+\d{3,8}';
var tel='010 123456';
console.log(reg.test(tel));//true
註: 本文內容來自參考廖大哥的教程, 原文地址:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386832260566c26442c671fa489ebc6fe85badda25cd000