JavaScript 正規表示式

2021-08-07 08:53:32 字數 4222 閱讀 2119

正規表示式api:

什麼是正規表示式?

正規表示式(regular expression

)是對字元

串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成乙個「規則字串」,這個「規則字串」用來表達對字串的一種過濾邏輯。

簡單來說:

使用特定的符號所描述的一種規則

,通常被用來檢索、替換那些符合某個模式(規則)的文字

舉例:

使用者名稱只能輸入 數字、字母、下劃線 ,同時數字不可以作為開頭,

同時長度必須在6-20之間

var str = username;

if( /^[a-za-z]\w+$/.test(str) )

為什麼要使用正規表示式?

最主要的是

可以大量的節省驗證的工作量,正規表示式的特點是:

1. 靈活性、邏輯性和功能性非常強;

2. 可以迅速地用極簡單的方式達到字串的複雜控制。

如何建立正規表示式?

第一種:

var reg = new regexp("google", "gi");

第二種使用  /regstr/gi:

/google/gi.test(str)

reg  代表了一種規則

reg.test("***x")    代表了使用該規則對字串進行校驗

字串的match方法

var pattern = /good/ig; 

var str = 'good good study!,day day up!';

console.log(str.match(pattern));

console.log(str.match(pattern).length);

使用 search 來查詢匹配資料

var pattern = /good/ig;

var str = 'good good study!,day day up!';

console.log(str.search(pattern));

使用 replace 替換匹配到的資料

var pattern = /good/ig;

var str = 'good good study!,day day up!';

console.log(str.replace(pattern, 'hard'));

日期處理

"2017&08&08".replace(/\d+\d/g, function(matched, index, str))

"2017&08@08".replace(/(\d+)(\d)/g, function(matched, sub1,sub2, index, str))

"2017&08@08".replace( /\d/g , "-" );

選擇器

function $$(selector) 

//.class

if(match = selector.match(/^\.(.+)/))

//div

if(match = selector.match(/^([a-za-z]+[0-9]?)$/))

//div[index = 1]

if(match = selector.match(/^([a-za-z]+[0-9]?)\[(.+)\=(.+)\]/)) );

return res;

}}

日期顯示

setinterval(function()

console.log(arr)

},1000)

setinterval(function(),1000)

. 表示任意字元

var pattern = /g..gle/; 

var str = 'google';

console.log(pattern.test(str));

匹配次數問題

*        表示任意次 0 或多次

?       表示匹配1次或0次     

+        表示至少1次

表示m次到n次

表示至少m次

表示匹配m次

字元匹配

[a-za-z0-9]    列舉所有符合的情況,當情況過多時,使用-表示範圍

^        開始

$         結束

\d        數字

\d       非數字

\w       數字字母下劃線

\w      非數字字母下劃線

\s       空白字元

校驗是否全由數字組成

function isnumber(num) else 

}

校驗普通**、傳真號碼:可以「+」開頭,除數字外,可含有「-」

var reg = /^\+?(\d+-?)*\d+$/;

/^[1-9]\d$/

檢查檔案壓縮包

/^.+\.(zip|gz|rar|7z|tar)$/

刪除多餘空格  //

str.replace( /\s+/g , "");

刪除首尾空格

str.replace( /(^\s+)|(\s+$)/, "")

電子郵件( ***xx @ ***x(.***x)+)

/^[^@\s\?]+@[^@\s\?]+(\.[^@\s\?]+)+$/

手機號  1 3|5|8|7|4

/^1(3|5|8|7|4)\d$/

身份證

/\d[0-9x]/

日期  (***x-xx-xx| ***x/xx/xx | ***x.xx.xx)

/\d([-_\.#\s]\d)/

匹配中文

[\u2e80-\u9fff]

賬戶名只能使用數字字母下劃線,且數字不能開頭,長度在6-15之間

/^[a-za-z_]\w$/

將所有的bag、beg、big和bog改為bug

article.replace( /\sb[aeio]g\s/, " bug ");

將所有方法foo(a,b,c)的例項改為foo(b,a,c)

code.replace( /foo\(([^,]+),([^,]+),([^,]+)\)/, function(matched, g1, g2, g3) )

假設有乙個多字元的片斷重複出現,例如:

billy tried really hard

sally tried really really hard

timmy tried really really really hard

johnny tried really really really really hard

而你想把"really"、"really really",以及任意數量連續出現的"really"字串換成乙個簡單的"very"

str.replace(/(really\s)+/g,"very ");

練習

var myreg = /(\w+)\s(\w+)/i;

var str = "john smith";

var newstr = str.replace(myreg, "$2 $1");

document.write(newstr);

//敏感詞過濾

function strfilter(target)

return target.replace(reg, stars);

}}

Javascript正規表示式

這段時間學習js,正好遇到了正規表示式。下面通過使用例項介紹一下正規表示式。正規表示式,又稱正規表示法 常規表示法 英語 regular expression,在 中常簡寫為regex regexp或re 電腦科學的乙個概念。正規表示式使用單個字串來描述 匹配一系列符合某個句法規則的字串。在很多文字...

JavaScript 正規表示式

一 什麼是正規表示式 正規表示式 regular expression 是乙個描述字元模式的物件。測試正規表示式 regexp 物件包含兩個方法 test 和exec 功能基本相似,用於測試字串匹配。test 方法在字串中查詢是否存在指定的正規表示式並返回布林值,如果存在則返回true,不存 在則返...

javascript 正規表示式

正規表示式 regexp物件 主要用於表單驗證 1 建立正規表示式 1 var ret pattern pattern是內容,可以是正規表示式的內容,可以是字元或是其他的內容 2 var rag new regexp pattern 括號內可以是雙引號或者單引號 2 正規表示式的exec方法 reg...