摘要:被稱之為修飾符,用于表明正則表達(dá)式的行為。創(chuàng)建對(duì)象如下代碼類型于類型之間的區(qū)別使用運(yùn)算符,類型返回,類型返回。提取字符串中的兩個(gè)指定的索引號(hào)之間的字符。在字符串中查找匹配的子串,并替換于正則表達(dá)式匹配的字串。
RegExp類型 概述
正則表達(dá)式時(shí)什么
正則表達(dá)式(Regular Expression):由一些普通字符和特殊字符組成的,用以描述一種特定的字符規(guī)則的表達(dá)式。
正則表達(dá)式常用于在一段文本中搜索,匹配或替換特定形式的文本。如:詞語(yǔ)出現(xiàn)頻率統(tǒng)計(jì),驗(yàn)證字符串是否符合郵箱格式,屏蔽一篇帖子中限制性的詞語(yǔ)等
創(chuàng)建正則表達(dá)式
JavaScript中沒有正則表達(dá)式數(shù)據(jù)類型,創(chuàng)建正則表達(dá)式的語(yǔ)句如下:
var expression =/pattern/attributes;
pattern參數(shù):被稱為模式,可以時(shí)任何簡(jiǎn)單或復(fù)雜的正則表達(dá)式,包含字符類,限定符,分組,向前查找已經(jīng)反向應(yīng)用。
attribures參數(shù):被稱為修飾符,用于表明正則表達(dá)式的行為。
##符號(hào)
直接量字符
正則表達(dá)式中的所有字母和數(shù)字都是按照字面含義進(jìn)行匹匹厄的。JavaScript正則表達(dá)式語(yǔ)法也是支持非字母的字符匹配,這些字符需要通過反斜線()作為前綴進(jìn)行轉(zhuǎn)義。
O 匹配NULL字符,不要再這后面跟其他的小鼠
t匹配一個(gè)水平制表符。
n匹配一個(gè)換行符。
v 匹配一個(gè)垂直制表符。
R匹配一個(gè)回車符。
f匹配一個(gè)換頁(yè)符。
xhh 匹配帶有兩位小數(shù)代碼(hh)的字符
uhhh 匹配一個(gè)帶有四位小數(shù)代碼(hh)的字符
字符類
將直接量字符多帶帶放進(jìn)方括號(hào)內(nèi)就組成了字符類。一個(gè)字符類可以匹配它所包含的任意字符。由于某些字符類非常常用,JavaScript的正則表達(dá)式中,使用特殊轉(zhuǎn)義字符表示他們。
[...] 一個(gè)字符集合。匹配放闊號(hào)任意字符。你可以使用破折號(hào)
(-)來制定。由于某些字符范圍。對(duì)于點(diǎn)
(.)和信號(hào)(*)這樣的特殊字符再一個(gè)字符集中沒有特殊的意義。
1 一個(gè)反向的字符集。
. (小數(shù)點(diǎn))匹配除了換行符(n)之外的任何單個(gè)字符
w 匹配一個(gè)單子字符(字母,數(shù)字,或者下劃線)。等價(jià)于[A-Za-z0-9]
W匹配一個(gè)非單字字符。
s匹配一個(gè)空白字符,包括空格,制表符,換頁(yè)符和換行符。
S匹配一個(gè)非空白字符。
d匹配一個(gè)數(shù)字, 等價(jià)于【0-9】
D匹配一個(gè)非數(shù)組字符。等價(jià)于2;
重復(fù)
再JavaScript中的正則表達(dá)式用來描述任意多為的數(shù)字,或者描述由三個(gè)字母和一個(gè)數(shù)字構(gòu)成的字符串時(shí),可以使用字符重復(fù)的標(biāo)記。
{n,m} n和m都是正整數(shù)。匹配前面的字符至少n次,做多m次。如果n或者m是0那么可以或略這個(gè)值
{n}n是一個(gè)正整數(shù),匹配了前面一個(gè)字符剛好發(fā)生了n次。
{n}n是一個(gè)正整數(shù),匹配了有一個(gè)正整數(shù),匹配了前面一個(gè)字符放生了n次或者更多次。
? 匹配前面一個(gè)字符0或者1次和{0,1}有相同的效果。
匹配前面一個(gè)字符1次或者多次,和{1,}有相同的效果。
匹配簽一個(gè)字符0或者多次。
注意:‘*’ ‘?’可以匹配0個(gè)字符,允許什么都匹配
選擇,分組,引用
正則表達(dá)式包括指定選擇項(xiàng),子表達(dá)式分組和引用前一子表達(dá)式的特殊字符。
x|y 匹配‘x’或者‘y’。
(x) 匹配“x”并且記住匹配項(xiàng)。這個(gè)被叫做捕獲括號(hào)。
(?.x) 匹配“x”但是不記住匹配項(xiàng)。這種被叫做非捕獲括號(hào)。
n 是一個(gè)正整數(shù),一個(gè)返回引用到最后一個(gè)于有n插入的正值表達(dá)式(counting left parentheses)匹配的副字符串。
指定匹配位置
正則表達(dá)式中的多個(gè)元素才能夠匹配字符串的一個(gè)字符,這些元素稱之為正則表達(dá)式的錨。因?yàn)樗麄儗⒛J蕉ㄎ辉谒阉髯址奶囟ㄎ恢蒙稀?br>^ 匹配輸入的開始 。如果多行標(biāo)識(shí)被設(shè)置為true,同時(shí)匹配換行后緊跟的字符
$ 匹配輸入的結(jié)束,如果多行標(biāo)識(shí)被設(shè)置為ture,同時(shí)會(huì)匹配換行之前緊跟的字符
b 匹配一個(gè)詞的邊界。一個(gè)詞的邊界就是一個(gè)詞不被另外一個(gè)次跟隨的位置或者不是另外一個(gè)詞匯字符前邊的位置。
B 匹配一個(gè)非單詞的邊界
X(?=y) 匹配‘x’僅僅當(dāng)‘x’后面跟著‘y’。這種叫做正向肯定查找。
x(?!y) 匹配‘x’僅僅當(dāng)‘x’后面不跟著y,這個(gè)叫做正向否定查找。
修飾符
正則表達(dá)式的修飾符,用于說明高級(jí)匹配的規(guī)則。修飾符是放在‘/’符號(hào)的后面的。JavaScript支持的三個(gè)修飾符。
i 不區(qū)分大小寫
g 全局搜索
m 多行搜搜
對(duì)象
創(chuàng)建RegExp對(duì)象
JavaScript可以通過引用類型RegExp創(chuàng)建正則表達(dá)式對(duì)象,語(yǔ)法如下:
var pattern =new RegExp(pattern,attributes);
參數(shù):
pattern:被稱之為模式,可以是任何簡(jiǎn)單或復(fù)雜的正則表達(dá)式,包含字符類,限制類,分組,向前查找以及反向引用。
attributes:被稱之為修飾符,用于表明正則表達(dá)式的行為。
RegExp對(duì)象的屬性
RegExp對(duì)象的屬性如下:
global 只讀 RegExp對(duì)象是否具有g(shù)修飾符。
ignorecase 只讀RegExp對(duì)象是否具有i修飾符。
multiline 只讀RegExp對(duì)象是否具有m修飾符。
lastindex 用于設(shè)置獲取下次匹配的其實(shí)位置。
source 只讀 返回模式匹配所使用的問題。
$1...$9 全局屬性 指代最近一次搜索中某個(gè)子表達(dá)式匹配的問題。
RegExp對(duì)象的方法
RegExp對(duì)象的方法如下:
compile() 編譯/重新編譯正則表達(dá)式,將pattern轉(zhuǎn)換為內(nèi)部格式,加速執(zhí)行速度。
exec() 檢索字符串中指定的值。返回找到的值,并確定其位置;影響lastindex屬性的值。
test() 檢索字符串指定的值。返回ture 或false;影響lastindex屬性的值。
字符串是什么
String類型是于原始類型string對(duì)應(yīng)的包裝類型。創(chuàng)建String對(duì)象如下代碼:
var strObject = new String ("this is string");
string 類型于String 類型之間的區(qū)別:
使用typeof運(yùn)算符,string 類型返回‘string’,String類型返回"object"。
String類型提供了很多屬性和方法可以使用。例如檢索字符串,分割字符換行等操作
大小寫轉(zhuǎn)換
String對(duì)象提供如下放方法,用于大小寫轉(zhuǎn)換。
toUppercase() 把字符串轉(zhuǎn)換為大寫。
toLowercase() 把字符串轉(zhuǎn)換為小寫。
var =msg = "Hello World";
var lowerMsg =msg.tolowercase();
var upperMsg =msg.toUppercase ();
console.log(msg);//Hello World
console.log(LoweMsg);//hello world
console.log(upperMsg);//HELLO WORLD
獲取指定位置的字符串
String對(duì)象提供如下方法。用于獲取指定位置的字符。
charAr() 返回再指定位置的字符。
charCodeAt() 返回在指定的位置的字符的Unicode編碼。
var str = "HELLO WORLD";
console.log(str.charAt(2));//L
console.log(str.charCode(0));72
檢索字符串
String對(duì)象提供如下方法,用于檢索字符串。
indexOf()返回某個(gè)指定的字符串值在字符串中首次出現(xiàn)的位置。
lastindexOf()從后向前字符串。
var email ="tom@163@sohu.com";
console.log(email.indexOf("tom"));//0
console.log(email.indexOf("@",5))//7
console.log(email.lastIndexOf("@"))//7
console.log(smail.lastIndexOf("@",5))//3
console.log(email.indexOf("Mary"));/-1
截取子字符串
String對(duì)象提供如下方法,用于截取子字符串。
slice() 提取字符串的片段,并在新的字符串中返回被提取的部分。
substr() 從其實(shí)索引號(hào)提取字符串中指定書目的字符。
substring() 提取字符串中的兩個(gè)指定的索引號(hào)之間的字符。
var msg = "abc一二三";
console.log(msg.slice(2,4));//c一
console.log(msg.substring(2,4))//c一
console.log(msg.substr(2,1))//c
console.log(msg.slice(-3,-2));//一
分隔字符串
string對(duì)象提供如下方法,用于分隔字符串。
split() 把字符串分割為字符串?dāng)?shù)組。
var str ="1,2,3,4";
str,split("");//["1","2","3","4,"];
str.split("",3);//["1","2","3","4"];
連接字符串
String對(duì)象提供了如下方法,用于連接字符串。
concat() 連接兩個(gè)或者更多字符串,并返回新的字符串。
var s1 ="AA";
var s2= s1.concat("BB","CC",55);
console.log(s1);AA
console.log(s2);//AABBCC55
修飾符
模式匹配中可以使用如下三種屬性修飾符:
i ignorecase,執(zhí)行對(duì)大小寫不敏感的匹配。
g global, 執(zhí)行全局匹配(查找所有匹配而不是在第一次匹配之后停止)。
m multiline,允許執(zhí)行多行匹配。
替換子字符串
String對(duì)象提供如下方法,用于替換子字符串。
replce()在字符串中查找匹配的子串,并替換于正則表達(dá)式匹配的字串。
var = data =Microsoft is a big company ,microsoft"s color is red and has MICROSOFT logo lick microsoft";
console.log (data.replace("microsoft","oracle"));
console.log(data.replace(/microsoft/,"oracle"));
console.log(data.replace(/microsoft/i,oracle));
console.log(data.replace(/microsoft/ig,oracle));
匹配字符串
String對(duì)象提供了如下方法,用于匹配字符串。
match() 查找找到一個(gè)或多個(gè)正則表達(dá)式的匹配。
var = data =Microsoft is a big company ,microsoft"s color is red and has MICROSOFT logo lick microsoft";
console.log(data.match("microsoft"))
console.log(data.match(/microsoft/));
console.log(data.match(/microsoft/i);
console.log(data.match(/microsoft/ig));
查找字符串
String對(duì)象提供如下方法,用于查找字符串
search 查找于正則表達(dá)式向匹配的值。
var = data =Microsoft is a big company ,microsoft"s color is red and has MICROSOFT logo lick microsoft";
console.log(data.search)(/"microsoft"/);
console.log(data.search)(/"microsoft"i)/;
console.log(data.search)(/"microsoft"/ig);
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/108451.html
摘要:今天同學(xué)去面試,做了兩道面試題全部做錯(cuò)了,發(fā)過來給道典型的面試題前端掘金在界中,開發(fā)人員的需求量一直居高不下。 排序算法 -- JavaScript 標(biāo)準(zhǔn)參考教程(alpha) - 前端 - 掘金來自《JavaScript 標(biāo)準(zhǔn)參考教程(alpha)》,by 阮一峰 目錄 冒泡排序 簡(jiǎn)介 算法實(shí)現(xiàn) 選擇排序 簡(jiǎn)介 算法實(shí)現(xiàn) ... 圖例詳解那道 setTimeout 與循環(huán)閉包的經(jīng)典面...
摘要:簡(jiǎn)介語(yǔ)言的每一個(gè)值,都屬于某一種數(shù)據(jù)類型原始類型特殊值復(fù)雜類型判斷值的類型運(yùn)算符運(yùn)算符可以返回一個(gè)值的數(shù)據(jù)類型。由于歷史原因,的類型是運(yùn)算符運(yùn)算符返回一個(gè)布爾值,表示對(duì)象是否為某個(gè)構(gòu)造函數(shù)的實(shí)例。 簡(jiǎn)介 JavaScript 語(yǔ)言的每一個(gè)值,都屬于某一種數(shù)據(jù)類型 原始類型 boolean number string 特殊值 undefined null 復(fù)雜類型 object...
摘要:基本語(yǔ)法構(gòu)造函數(shù)可創(chuàng)建一個(gè)正則表達(dá)式對(duì)象,用特定的模式匹配文本。要表示字符串,字面量形式不使用引號(hào),而傳遞給構(gòu)造函數(shù)的參數(shù)使用引號(hào)。當(dāng)使用構(gòu)造函數(shù)創(chuàng)造正則對(duì)象時(shí),需要常規(guī)的字符轉(zhuǎn)義規(guī)則在前面加反斜杠。結(jié)果替換與正則表達(dá)式匹配的子串。 文章來源:小青年原創(chuàng)發(fā)布時(shí)間:2016-06-26關(guān)鍵詞:JavaScript,正則表達(dá)式,js模板引擎轉(zhuǎn)載需標(biāo)注本文原始地址: http://zhaom...
摘要:簡(jiǎn)介正則表達(dá)式,又稱正規(guī)表示法正規(guī)表達(dá)式規(guī)則表達(dá)式常規(guī)表示法英語(yǔ),在代碼中常簡(jiǎn)寫為或,計(jì)算機(jī)科學(xué)的一個(gè)概念。返回布爾值,該值指示在正則表達(dá)式中使用的標(biāo)志的狀態(tài)。包含正則表達(dá)式模式和適用標(biāo)志的對(duì)象的實(shí)例。 showImg(http://upload-images.jianshu.io/upload_images/100028-21442c62c7b7674a.jpg?imageMogr2...
摘要:簡(jiǎn)介俗稱,的正式名稱是,是網(wǎng)景公司公司開發(fā)的一種基于客戶端瀏覽器基于面向?qū)ο笫录?qū)動(dòng)式的網(wǎng)頁(yè)腳本語(yǔ)言。變量名不能使用關(guān)鍵字變量名對(duì)大小寫敏感。 javascript簡(jiǎn)介 javascript俗稱js,js的正式名稱是ECMAScript,是網(wǎng)景公司Netscape公司開發(fā)的一種基于客戶端瀏覽器、基于面向?qū)ο?、事件?qū)動(dòng)式的網(wǎng)頁(yè)腳本語(yǔ)言。主要用于:交互式操作,表單驗(yàn)證,網(wǎng)頁(yè)特效,web游...
閱讀 3933·2021-09-22 10:02
閱讀 3365·2019-08-30 15:52
閱讀 3061·2019-08-30 12:51
閱讀 755·2019-08-30 11:08
閱讀 2065·2019-08-29 15:18
閱讀 3106·2019-08-29 12:13
閱讀 3592·2019-08-29 11:29
閱讀 1872·2019-08-29 11:13