正規表示式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...