標籤:

正則表達式及其簡單應用-前端筆記

概述

正則表達式(regular expression)是一種表達文本模式(即字元串結構)的方法,有點像字元串的模板,常常用來按照「給定模式」匹配文本。正則表達式能夠進行複雜的字元串搜尋、替換工作,這種不太可能通過手工以及簡單的方式來完成還可以幫我們進行各種字元串驗證。

創建

創建正則表達式的方法有兩種。

1.字面量

var regex = /xyz/;

2.RegExp構造函數

var regex = new RegExp(xyzi);

構造函數種的後面那個參數『i』為修飾符,表示忽略大小寫。

修飾符有:

g:global,全文搜索,不添加的話搜索到第一個結果停止搜索

i:ingore case,忽略大小寫,默認大小寫敏感

m:multiple lines,多行搜索

匹配規則

直接量字元

量詞符

  • 註:

    javascript默認是貪婪匹配,也就是說匹配重複字元是儘可能多地匹配,而且允許後續的正則表達式繼續匹配。而進行非貪婪匹配,只需要在待匹配的字元後面跟隨一個問號即可:「??」、「+?」、「*?」、「{1,5}?」。比如:/a+/可以匹配一個或多個連續的字母a。當使用「aaa」作為匹配字元串時,/a+/會匹配它的三個字母。但是/a+?/會儘可能少的匹配,只能匹配第一個。

字元類

  • 註:

    方括弧又叫字元組,注意某些元字元在字元組外和字元組內的意義不同。例如:^在字元組外匹配行的開頭,在字元組內表示排除型字元;-在字元組外匹配普通連字元號,在字元組內(不在開頭)表示一個範圍;問號和點號在字元組外通常是元字元,但在字元組內只是匹配普通字元而已

選擇邊界字元

代碼

  • 寫一個函數trim(str),去除字元串兩邊的空白字元

function trim(str){ newstr = str.replace(/^s*|s*$/,); return newstr }console.log(trim( hello world ))

/^s*|s*$/,的意思是找出空白字元*表示匹配0次或者多次

  • 寫一個函數isEmail(str),判斷用戶輸入的是不是郵箱

function isEmail(str){ reg = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9]+.(com|cn)$/.test(str); return reg.test(str) } console.log(isEmail(a))//false

  • 寫一個函數isPhoneNum(str),判斷用戶輸入的是不是手機號

function isPhoneNum(str){ reg=/^1[34578]d{9}$/ return reg.test(str)}

  • 寫一個函數isValidUsername(str),判斷用戶輸入的是不是合法的用戶名(長度6-20個字元,只能包括字母、數字、下劃線)

function isValidUsername(str){ reg =/^[a-zA-Z0-9_]{6,20}$/g return reg.test(str)}


推薦閱讀:

TAG:正則表達式 |