正則表達式:主要用來匹配字符;工做原理,使用通配符匹配技術。正則表達式
正則表達式:數組
一、var re=new RegExp("a","i") 實例化一個對象,a是一個正則的內容,具體的規則,i是一個標誌ide
二、var re=/a/i a也是正則內容,i是規則。加上i的意思是不區分大小寫。沒有i,表示區分大小寫。*表示匹配任意字符。若是之匹配星號,咱們須要用到專注,用一個反斜槓來進行轉義\*,這樣就能夠匹配*號了。只要是特殊符號,要進行匹配的話,都要進行轉義,特殊符號有:!¥……*+=.\/()[]{};這些符號要進行匹配的話,都要進行轉義。測試
三、特殊字符:o t n v f r xnn uxxxx cX這些特殊字符要匹配的話,也要進行轉義一下。spa
這個是字符類,是表明的一類字符。code
Unicode 空白符就是表示的空格。小寫和大寫都是非的關係。orm
建立正則表達式兩種方式:對象
var re = new RegExp("a","i"); //a具體規則 i標誌unicode
var re = /a/i //匹配字符串中的"a" i不區分大小寫字符串
1.特殊符號 //匹配如下特殊字符須要用反斜槓轉義
! $ ^ * + = | . ? \ / ( ) { } [ ]
2.特殊字符
o t n v f r xnn uxxxx cx
正則表達式對象的方法
exec() 執行正則表達式的匹配,返回一個數組
test() 測試正則表達式的匹配,返回布爾值
toSource() 返回RegExp對象的源代碼
toString() 將RegExp對象轉換成字符串
標誌:
i 匹配時不區分大小寫
g 匹配時執行全局匹配
m 匹配時執行多行匹配
重複類:{n} 匹配前一項n次;
{n,}匹配前一項至少一次,至多不限
{n,m}匹配前一項至少N次,最多M次
{?}匹配前一項0次或者1次
{+}匹配前一項至少1次
{*}匹配前一項0次或者屢次
選擇符: 分隔能夠用來選擇的文字
定位符: ^ :匹配字符串的結尾
$: 匹配一個單詞的邊界
\b: 匹配一個單詞的邊界
\B: 與\b相反,匹配一個非單詞邊界
\u4e00-\u9fa5 全部漢字
[^\x00-xff]意思爲雙字節 \x00-xff表示爲單字節
unicode 漢字範圍 \u4e00-\u9fa5
\w a-zA-Z0-9
匹配合法用戶名
var re = /[\w\u4e00-\u9fa5]/g;
匹配非法用戶名
var re = /[^\w\u4e00-\u9fa5]/g;
用戶名要求:1.組成:數字,字母(不區分大小寫),漢字,下劃線。
3種交互行爲驗證:
1.得到焦點時,提示用戶名命名規則。
2.輸入用戶名時,提示已填字符數量。
3.失去焦點時,判斷是否爲空、長度是否小於5或大於2五、是否有非法字符,如都合法則提示OK。
x00-xff表示全部ASCII碼中的單字符。如不在此範圍則用2個字符代替(一個漢字表明2個字符的判斷)。
計算輸入字符的長度:
function getLength(str) {
return str.replace(/[^\x00-xff]/g,"xx").length;
}
var re_n=/[^\d]/g; //表示匹配全局非數字
var re_t=/[^a-zA-Z]/g; //表示匹配全局非字母
var re = /^[a-zA-Z]{1}[\w\.]{4,19}$/;/*只能輸入5-20個字符,以「字母」開頭*/;