摘要:由于某些字符類非常常用,的正則表達(dá)式中,使用特殊轉(zhuǎn)義字符表示他們。多行搜索代碼示例對象創(chuàng)建對象可以通過引用類型創(chuàng)建正則表達(dá)式對象參數(shù)參數(shù)被稱為模式,可以使任何簡單或復(fù)雜的正則表達(dá)式,包含字符類限定符分組向前查找以及反向引用等。
概述 正則表達(dá)式是什么
正則表達(dá)式(RegularExpression):由一些普通字符和特殊字符組成的,用以描述一種特定的字符規(guī)則的表達(dá)式。
正則表達(dá)式常用在一段文本中搜索、匹配或替換特定形式的文本。比如:詞語出現(xiàn)頻率統(tǒng)計、驗證字符串是否符合郵箱格式、屏蔽一篇帖子中的限制性詞語等。
/* 1.字面量/直接量方式 var 變量名 = /pattern/attributes * pattern - 稱為模式,用于定義正則表達(dá)式的內(nèi)容 * attributes - 稱為修飾符,用于定義正則表達(dá)式的行為 */ var reg = /123456789/i; /* 2.構(gòu)造函數(shù)方式 var 變量名 = new RegExp(pattern [, attributes]) * pattern - 稱為模式,用于定義正則表達(dá)式的內(nèi)容 * attributes - 稱為修飾符,用于定義正則表達(dá)式的行為 */ var reg = new RegExp("123456789", "i");
pattern參數(shù):被稱為模式,可以使任何簡單或復(fù)雜的正則表達(dá)式,包含字符類、限定符、分組、向前查找以及反向引用等。
attributes參數(shù):被稱為修飾符,用于表明正則表達(dá)式的行為。
正則表達(dá)式中的所有字母和數(shù)字都是按照字面含義進(jìn)行匹配的。JavaScript正則表達(dá)式語法也支持非字母的字符匹配,這些字符需要通過反斜線作為前綴進(jìn)行轉(zhuǎn)義。
字符類將直接量字符多帶帶放進(jìn)方括號內(nèi)就組成了字符類。一個字符可以匹配它所包含的任意字符。由于某些字符類非常常用,JavaScript的正則表達(dá)式中,使用特殊轉(zhuǎn)義字符表示他們。
var str = "king"; // 正則表達(dá)式的內(nèi)容中定義規(guī)則 -> 驗證的內(nèi)容是否包含規(guī)則 // var reg = /123456789/; // 正則表達(dá)式的內(nèi)容中定義規(guī)則 -> 驗證的內(nèi)容匹配任何字符即可 var reg = /[0123456789]/; var reg = /[d]/; var reg = /[0-9]/; var reg = /[a-zA-Z]/; var result = reg.test(str); console.log(result);重復(fù)
在JavaScript中的正則表達(dá)式用來描述任意多位的數(shù)字,或者描述由三個字母和一個數(shù)字構(gòu)成的字符串時,可以使用字符重復(fù)耳釘標(biāo)記。
var str = "wolong124xue3yuan"; /* {n, m} - 表示字符類中任意字符出現(xiàn)的次數(shù) * n - 表示至少出現(xiàn)n次(包含n次) * m - 表示至多出現(xiàn)m次(包含m次) * 注意 - 出現(xiàn)的次數(shù)必須是連續(xù)的 */ var reg = /[0-9]{3,5}/; var result = reg.test(str); console.log(result);匹配指定的位置
正則表達(dá)式中的多個元素才能夠匹配字符串的一個字符,這些元素稱之為正則表達(dá)式的錨。因為它們將模式定位在搜索字符串的特定位置上。
常用兩中‘^’和‘$’一個表示從匹配輸入的開始,另一個表示 從匹配輸入的結(jié)束。
var str = "12a45"; // 表示以什么開始的 // var reg = /^[0-9]{3,5}/; // 表示以什么結(jié)束的 // var reg = /[0-9]{3,5}$/; // 表示匹配內(nèi)容的長度只能為至少n次,至多m次,而且內(nèi)容必須與字符類匹配 var reg = /^[0-9]{3,5}$/; var result = reg.test(str); console.log(result); // 長度為6-16位的數(shù)字或字母 /^[0-9a-zA-Z]{6,16}$/修飾符
正則表達(dá)式的修飾符,用于說明高級匹配模式的規(guī)則。修飾符是放在“/”符號后面的,JavaScript支持三個修飾符
1.i:不區(qū)分大小寫搜索。
2.g:全局搜索。
3.m:多行搜索.
代碼示例:
var str = "wolongxueyuan"; var reg = /^[A-Z]{8,16}$/i; var result = reg.test(str); console.log(result);對象 創(chuàng)建RegExp對象
JavaScript可以通過引用類型RegExp創(chuàng)建正則表達(dá)式對象
參數(shù):
1.pattern參數(shù):被稱為模式,可以使任何簡單或復(fù)雜的正則表達(dá)式,包含字符類、限定符、分組、向前查找以及反向引用等。
2.attributes參數(shù):被稱為修飾符,用于表明正則表達(dá)式的行為。
代碼示例
var arr = new RegExp(pattern,attributes);RegExp對象的屬性 RegExp對象的方法
RegExp獨享的方法有三種:
1.compile():編譯/重新編寫正則表達(dá)式,將pattern轉(zhuǎn)換為每部格式,加快執(zhí)行速度。
2.exec():檢索字符串中指定的值。返回找到的值,并確定其位置;影響lastlndex屬性的值。
3.test():檢索字符串中指定的值。返回true或false;影響lastlndex屬性的值。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/108425.html
摘要:面向?qū)ο缶幊虒ο蟮脑椒ǚ殖蓛深愖陨淼姆椒o態(tài)方法和的實例方法。的靜態(tài)方法方法與,參數(shù)是對象,返回一個數(shù)組,數(shù)組的值是改對象自身的所有屬性名區(qū)別在于返回可枚舉的屬性,返回不可枚舉的屬性值。 面向?qū)ο缶幊?Objects對象的原生方法分成兩類:Object自身的方法(靜態(tài)方法)和Object的實例方法。注意Object是JavaScript的原生對象,所有的其他對象都是繼承自O(shè)bjec...
摘要:每個構(gòu)造函數(shù)定義了一類對象,表示由構(gòu)造函數(shù)初始化對象的集合。嚴(yán)格模式下,明確禁止八進(jìn)制數(shù)。日期和時間構(gòu)造函數(shù)用來創(chuàng)建表示日期和時間的對象,包含方法。模式匹配函數(shù)是一個構(gòu)造函數(shù),創(chuàng)建正則表達(dá)式。布爾值表示兩種狀態(tài),使用保留字和。 《Javascript權(quán)威指南》就是前端工程師口中常說的犀牛書,得名是因為中文翻譯出版的書籍封面是一只犀牛,是學(xué)習(xí)JavaScript的必讀書籍。 JavaSc...
摘要:本文是我在復(fù)制對象方面的一些心得總結(jié),由淺復(fù)制到深復(fù)制,由只復(fù)制簡單屬性到復(fù)制,等復(fù)雜屬性,層層遞進(jìn)。如有陳述不當(dāng)之處,煩請指出,不勝感激。下面是一個簡單的淺復(fù)制實現(xiàn)。 前言 從層次上來看,對象的復(fù)制可以簡單地分為淺復(fù)制和深復(fù)制,顧名思義,淺復(fù)制是指只復(fù)制一層對象的屬性,不會復(fù)制對象中的對象的屬性,對象的深復(fù)制會復(fù)制對象中層層嵌套的對象的屬性。在復(fù)制對象時,除了要復(fù)制對象的屬性外,還要...
摘要:作用域鏈的作用就是做標(biāo)示符解析。事件循環(huán)還有個明顯的特點單線程。早期都是用作開發(fā),單線程可以比較好當(dāng)規(guī)避同步問題,降低了開發(fā)門檻。單線程需要解決的是效率問題,里的解決思想是異步非阻塞。 0、前言 本人在大學(xué)時非常癡迷java,認(rèn)為java就是世界上最好的語言,偶爾在項目中會用到一些javascript,但基本沒放在眼里。較全面的接觸javascript是在實習(xí)的時候,通過這次的了解發(fā)現(xiàn)...
摘要:對象在中,除了數(shù)字字符串布爾值這幾個簡單類型外,其他的都是對象。那么在函數(shù)對象中,這兩個屬性的有什么區(qū)別呢表示該函數(shù)對象的原型表示使用來執(zhí)行該函數(shù)時這種函數(shù)一般成為構(gòu)造函數(shù),后面會講解,新創(chuàng)建的對象的原型。這時的函數(shù)通常稱為構(gòu)造函數(shù)。。 本文原發(fā)于我的個人博客,經(jīng)多次修改后發(fā)到sf上。本文仍在不斷修改中,最新版請訪問個人博客。 最近工作一直在用nodejs做開發(fā),有了nodejs,...
閱讀 2584·2021-11-24 09:38
閱讀 2615·2019-08-30 15:54
閱讀 930·2019-08-30 15:52
閱讀 1917·2019-08-30 15:44
閱讀 2725·2019-08-30 13:48
閱讀 778·2019-08-29 16:21
閱讀 1006·2019-08-29 14:03
閱讀 2223·2019-08-28 18:15